diff options
-rw-r--r-- | mate-dictionary/src/gdict-aligned-window.c | 8 | ||||
-rw-r--r-- | mate-screenshot/src/screenshot-utils.c | 20 |
2 files changed, 18 insertions, 10 deletions
diff --git a/mate-dictionary/src/gdict-aligned-window.c b/mate-dictionary/src/gdict-aligned-window.c index 37c03ca5..9d8330ab 100644 --- a/mate-dictionary/src/gdict-aligned-window.c +++ b/mate-dictionary/src/gdict-aligned-window.c @@ -157,6 +157,7 @@ gdict_aligned_window_position (GdictAlignedWindow *window) GdictAlignedWindowPrivate *priv; GtkWidget *align_widget; gint our_width, our_height; + gint sc_width, sc_height; gint entry_x, entry_y, entry_width, entry_height; gint x, y; GdkGravity gravity = GDK_GRAVITY_NORTH_WEST; @@ -189,7 +190,10 @@ gdict_aligned_window_position (GdictAlignedWindow *window) &entry_y); gdk_window_get_geometry (gdk_window, NULL, NULL, &entry_width, &entry_height); - if (entry_x + our_width < gdk_screen_width ()) + gdk_window_get_geometry (gdk_screen_get_root_window (gdk_screen_get_default()), + NULL, NULL, &sc_width, &sc_height); + + if (entry_x + our_width < sc_width) x = entry_x + 1; else { @@ -198,7 +202,7 @@ gdict_aligned_window_position (GdictAlignedWindow *window) gravity = GDK_GRAVITY_NORTH_EAST; } - if (entry_y + entry_height + our_height < gdk_screen_height ()) + if (entry_y + entry_height + our_height < sc_height) y = entry_y + entry_height - 1; else { diff --git a/mate-screenshot/src/screenshot-utils.c b/mate-screenshot/src/screenshot-utils.c index bec693fa..55239a5c 100644 --- a/mate-screenshot/src/screenshot-utils.c +++ b/mate-screenshot/src/screenshot-utils.c @@ -723,6 +723,10 @@ screenshot_get_pixbuf (GdkWindow *window, GdkPixbuf *screenshot; gint x_real_orig, y_real_orig, x_orig, y_orig; gint width, real_width, height, real_height; + gint sc_width, sc_height; + + gdk_window_get_geometry (gdk_screen_get_root_window (gdk_screen_get_default()), + NULL, NULL, &sc_width, &sc_height); /* If the screenshot should include the border, we look for the WM window. */ @@ -763,11 +767,11 @@ screenshot_get_pixbuf (GdkWindow *window, y_orig = 0; } - if (x_orig + width > gdk_screen_width ()) - width = gdk_screen_width () - x_orig; + if (x_orig + width > sc_width) + width = sc_width - x_orig; - if (y_orig + height > gdk_screen_height ()) - height = gdk_screen_height () - y_orig; + if (y_orig + height > sc_height) + height = sc_height - y_orig; if (rectangle) { @@ -835,11 +839,11 @@ screenshot_get_pixbuf (GdkWindow *window, rec_height += y_real_orig; } - if (x_orig + rec_x + rec_width > gdk_screen_width ()) - rec_width = gdk_screen_width () - x_orig - rec_x; + if (x_orig + rec_x + rec_width > sc_width) + rec_width = sc_width - x_orig - rec_x; - if (y_orig + rec_y + rec_height > gdk_screen_height ()) - rec_height = gdk_screen_height () - y_orig - rec_y; + if (y_orig + rec_y + rec_height > sc_height) + rec_height = sc_height - y_orig - rec_y; for (y = rec_y; y < rec_y + rec_height; y++) { |