Skip to content

Commit

Permalink
Pass PixelBufferDrawTest
Browse files Browse the repository at this point in the history
  • Loading branch information
tsayao committed Feb 17, 2021
1 parent fedccf5 commit 30d5291
Showing 1 changed file with 31 additions and 23 deletions.
54 changes: 31 additions & 23 deletions modules/javafx.graphics/src/main/native-glass/gtk/glass_window.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -940,30 +940,31 @@ void WindowContextTop::process_configure(GdkEventConfigure* event) {
return;
}

gint x, y, w, h, gtk_w, gtk_h;
gint x, y, w, h, cw, ch;

gtk_w = event->width;
gtk_h = event->height;
//content width / height
cw = event->width;
ch = event->height;

w = gtk_w + geometry.adjust_w;
h = gtk_h + geometry.adjust_h;
w = cw + geometry.adjust_w;
h = ch + geometry.adjust_h;

gtk_window_get_position(GTK_WINDOW(gtk_widget), &x, &y);

bool pos_changed = geometry.current_x != x || geometry.current_y != y;
bool size_changed = geometry.current_w != w || geometry.current_h != h
|| geometry.current_cw != gtk_w || geometry.current_ch != gtk_h;
|| geometry.current_cw != cw || geometry.current_ch != ch;

geometry.current_x = x;
geometry.current_y = y;
geometry.current_w = w;
geometry.current_h = h;
geometry.current_cw = gtk_w;
geometry.current_ch = gtk_h;
geometry.current_cw = cw;
geometry.current_ch = ch;

if (!is_fullscreen && !is_maximized) {
geometry.last_cw = gtk_w;
geometry.last_ch = gtk_h;
geometry.last_cw = cw;
geometry.last_ch = ch;
}

size_position_notify(size_changed, pos_changed);
Expand Down Expand Up @@ -1073,35 +1074,42 @@ void WindowContextTop::set_bounds(int x, int y, bool xSet, bool ySet, int w, int
geometry.current_h = h;
}

bool size_changed = false;
bool pos_changed = false;

if (newW > 0 && newH > 0) {
// content size
geometry.current_cw = newW;
geometry.current_ch = newH;
geometry.last_cw = newW;
geometry.last_ch = newH;

apply_geometry();
gtk_window_resize(GTK_WINDOW(gtk_widget), newW, newH);

if (!map_received) {
size_position_notify(true, false);
if (visible_received) {
// call apply_geometry() to let gtk_window_resize succeed, because it's bound to
// geometry constraints
apply_geometry();
gtk_window_resize(GTK_WINDOW(gtk_widget), newW, newH);
} else {
gtk_window_set_default_size(GTK_WINDOW(gtk_widget), newW, newH);
}

size_changed = true;
}

if (xSet || ySet) {
int newX = (xSet) ? x : geometry.current_x;
int newY = (ySet) ? y : geometry.current_y;

if (newX != geometry.current_x || newY != geometry.current_y) {
geometry.current_x = newX;
geometry.current_y = newY;
geometry.current_x = newX;
geometry.current_y = newY;

gtk_window_move(GTK_WINDOW(gtk_widget), newX, newY);
gtk_window_move(GTK_WINDOW(gtk_widget), newX, newY);

if (!map_received) {
size_position_notify(false, true);
}
}
pos_changed = true;
}

if (size_changed || pos_changed) {
size_position_notify(size_changed, pos_changed);
}
}

Expand Down

0 comments on commit 30d5291

Please sign in to comment.