summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSean Davis <smd.seandavis@gmail.com>2018-02-18 10:02:14 -0500
committerSean Davis <smd.seandavis@gmail.com>2018-02-18 10:02:14 -0500
commitc0aa61e159ca097d5d578a59c45afa45f641885d (patch)
tree65518b3ae3bc9c2d6d6aa64999cac72657817186 /src
parent24f748d0e42ff46e4ba2df6b2fe4dfafc5db4fef (diff)
downloadlightdm-gtk-greeter-git-c0aa61e159ca097d5d578a59c45afa45f641885d.tar.gz
Tidy up deprecations and only apply timestamp logic if there is already an active monitor
Diffstat (limited to 'src')
-rw-r--r--src/greeterbackground.c15
-rw-r--r--src/greeterdeprecated.c21
-rw-r--r--src/greeterdeprecated.h6
3 files changed, 36 insertions, 6 deletions
diff --git a/src/greeterbackground.c b/src/greeterbackground.c
index 4dd4fa7..854edd3 100644
--- a/src/greeterbackground.c
+++ b/src/greeterbackground.c
@@ -741,9 +741,12 @@ greeter_background_set_active_monitor(GreeterBackground* background,
* timestamp at this precision (1/10th of a second), this should no longer be
* possible.
*/
- timestamp = floor(g_get_monotonic_time () * 0.00001);
- if (timestamp == priv->active_monitor_change_last_timestamp)
- return;
+ if (!active)
+ {
+ timestamp = floor(g_get_monotonic_time () * 0.00001);
+ if (timestamp == priv->active_monitor_change_last_timestamp)
+ return;
+ }
priv->active_monitor_change_in_progress = TRUE;
priv->active_monitor_change_last_timestamp = floor(g_get_monotonic_time () * 0.00001);
@@ -1610,7 +1613,7 @@ create_root_surface(GdkScreen* screen)
height = greeter_screen_get_height (screen);
/* Open a new connection so with Retain Permanent so the pixmap remains when the greeter quits */
- gdk_flush ();
+ greeter_gdk_flush ();
display = XOpenDisplay (gdk_display_get_name (gdk_screen_get_display (screen)));
if (!display)
{
@@ -1667,7 +1670,7 @@ set_root_pixmap_id(GdkScreen* screen,
XFree (data_root);
XFree (data_esetroot);
- gdk_error_trap_push ();
+ greeter_error_trap_push ();
if (xrootpmap && xrootpmap == esetrootpmap) {
XKillClient (display, xrootpmap);
}
@@ -1676,7 +1679,7 @@ set_root_pixmap_id(GdkScreen* screen,
}
XSync (display, False);
- gdk_error_trap_pop_ignored ();
+ greeter_error_trap_pop_ignored ();
}
}
}
diff --git a/src/greeterdeprecated.c b/src/greeterdeprecated.c
index 9a7d88c..1e24d7a 100644
--- a/src/greeterdeprecated.c
+++ b/src/greeterdeprecated.c
@@ -5,6 +5,27 @@
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
+void
+greeter_gdk_flush (void)
+{
+ /* Deprecated GTK ???? */
+ gdk_flush ();
+}
+
+void
+greeter_error_trap_push (void)
+{
+ /* Deprecated GTK ???? */
+ gdk_error_trap_push ();
+}
+
+void
+greeter_error_trap_pop_ignored (void)
+{
+ /* Deprecated GTK ???? */
+ gdk_error_trap_pop_ignored ();
+}
+
gint
greeter_screen_get_number (GdkScreen *screen)
{
diff --git a/src/greeterdeprecated.h b/src/greeterdeprecated.h
index 15156d5..0dc2dc4 100644
--- a/src/greeterdeprecated.h
+++ b/src/greeterdeprecated.h
@@ -4,6 +4,12 @@
#include <gtk/gtk.h>
+void greeter_gdk_flush (void);
+
+void greeter_error_trap_push (void);
+
+void greeter_error_trap_pop_ignored (void);
+
gint greeter_screen_get_number (GdkScreen *screen);
gint greeter_screen_get_width (GdkScreen *screen);