[Xfce4-commits] [xfce/thunar] 05/05: Replace a couple of gdk deprecated functions

noreply at xfce.org noreply at xfce.org
Sun Jan 14 20:36:19 CET 2018


This is an automated email from the git hooks/post-receive script.

a   n   d   r   e       p   u   s   h   e   d       a       c   o   m   m   i   t       t   o       b   r   a   n   c   h       m   a   s   t   e   r   
   in repository xfce/thunar.

commit 21538604149f0a1c840ad511b44665c5e5d855b3
Author: Andre Miranda <andreldm at xfce.org>
Date:   Sun Jan 14 16:33:41 2018 -0300

    Replace a couple of gdk deprecated functions
    
    Also make TWP select the monitor where Thunar's main window is
---
 plugins/thunar-wallpaper/twp-provider.c | 37 +++++++++++++++------------------
 thunar/thunar-gdk-extensions.c          | 26 ++---------------------
 2 files changed, 19 insertions(+), 44 deletions(-)

diff --git a/plugins/thunar-wallpaper/twp-provider.c b/plugins/thunar-wallpaper/twp-provider.c
index aa486d4..287340f 100644
--- a/plugins/thunar-wallpaper/twp-provider.c
+++ b/plugins/thunar-wallpaper/twp-provider.c
@@ -62,6 +62,7 @@ typedef enum
 
 static DesktopType desktop_type = DESKTOP_TYPE_NONE;
 static gboolean    _has_gconftool = FALSE;
+static GtkWidget   *main_window = NULL;
 
 
 
@@ -137,8 +138,9 @@ twp_provider_get_file_menu_items (ThunarxMenuProvider *menu_provider,
   Atom             xfce_selection_atom;
   Atom             nautilus_selection_atom;
   GdkScreen       *gdk_screen = gdk_screen_get_default();
-  gint             xscreen = gdk_screen_get_number(gdk_screen);
+  gint             xscreen = gdk_x11_screen_get_screen_number(gdk_screen);
 
+  main_window = window;
   desktop_type = DESKTOP_TYPE_NONE;
 
   /* we can only set a single wallpaper */
@@ -205,16 +207,16 @@ twp_action_set_wallpaper (ThunarxMenuItem *item,
 {
   ThunarxFileInfo *file_info = user_data;
   GdkDisplay      *display = gdk_display_get_default();
-  gint             n_screens = gdk_display_get_n_screens (display);
   gint             screen_nr = 0;
   gint             n_monitors;
   gint             monitor_nr = 0;
   gint             workspace;
   GdkScreen       *screen;
+  GdkMonitor      *monitor;
   gchar           *image_path_prop;
   gchar           *image_show_prop;
   gchar           *image_style_prop;
-  gchar           *monitor_name;
+  const char      *monitor_name;
   gchar           *file_uri;
   gchar           *escaped_file_name;
   gchar           *file_name = NULL;
@@ -224,10 +226,7 @@ twp_action_set_wallpaper (ThunarxMenuItem *item,
   gboolean         is_single_workspace;
   gint             current_image_style;
 
-  if (n_screens > 1)
-    screen = gdk_display_get_default_screen (display);
-  else
-    screen = gdk_display_get_screen (display, 0);
+  screen = gdk_display_get_default_screen (display);
 
   if (desktop_type != DESKTOP_TYPE_NONE)
     {
@@ -242,18 +241,22 @@ twp_action_set_wallpaper (ThunarxMenuItem *item,
           return;
         }
 
-      n_monitors = gdk_screen_get_n_monitors (screen);
-      if (n_monitors > 1)
-        {
-          /* ? */
-        }
-      g_free(file_uri);
+      g_free (file_uri);
     }
 
   workspace = twp_get_active_workspace_number (screen);
+  n_monitors = gdk_display_get_n_monitors (display);
 
-  monitor_name = gdk_screen_get_monitor_plug_name (screen, monitor_nr);
+  if (n_monitors > 1 && main_window)
+    {
+      monitor = gdk_display_get_monitor_at_window (display, gtk_widget_get_window (main_window));
+    }
+  else
+    {
+      monitor = gdk_display_get_monitor (display, monitor_nr);
+    }
 
+  monitor_name = gdk_monitor_get_model (monitor);
   escaped_file_name = g_shell_quote (file_name);
 
   switch (desktop_type)
@@ -348,7 +351,6 @@ twp_action_set_wallpaper (ThunarxMenuItem *item,
         break;
     }
 
-  g_free (monitor_name);
   g_free (escaped_file_name);
   g_free (file_name);
 }
@@ -405,12 +407,7 @@ twp_get_active_workspace_number (GdkScreen *screen)
       XFree (prop_ret);
     }
 
-#if GTK_CHECK_VERSION (3, 0, 0)
   gdk_error_trap_pop_ignored ();
-#else
-  if (gdk_error_trap_pop () != 0)
-    return 0;
-#endif
 
   return ws_num;
 }
diff --git a/thunar/thunar-gdk-extensions.c b/thunar/thunar-gdk-extensions.c
index 022d7ec..622f5da 100644
--- a/thunar/thunar-gdk-extensions.c
+++ b/thunar/thunar-gdk-extensions.c
@@ -173,11 +173,6 @@ thunar_gdk_screen_open (const gchar *display_name,
   GdkScreen   *screen = NULL;
   GSList      *displays;
   GSList      *dp;
-  gulong       n;
-  gchar       *period;
-  gchar       *name;
-  gchar       *end;
-  gint         num = 0;
 
   _thunar_return_val_if_fail (display_name != NULL, NULL);
   _thunar_return_val_if_fail (error == NULL || *error == NULL, NULL);
@@ -186,25 +181,12 @@ thunar_gdk_screen_open (const gchar *display_name,
   if (G_UNLIKELY (*display_name == '\0'))
     return g_object_ref (gdk_screen_get_default ());
 
-  /* extract the display part of the name */
-  name = g_strdup (display_name);
-  period = strrchr (name, '.');
-  if (period != NULL)
-    {
-      errno = 0;
-      *period++ = '\0';
-      end = period;
-      n = strtoul (period, &end, 0);
-      if (errno == 0 && period != end)
-        num = n;
-    }
-
   /* check if we already have that display */
   displays = gdk_display_manager_list_displays (gdk_display_manager_get ());
   for (dp = displays; dp != NULL; dp = dp->next)
     {
       other_name = gdk_display_get_name (dp->data);
-      if (strncmp (other_name, name, strlen (name)) == 0)
+      if (strncmp (other_name, display_name, strlen (display_name)) == 0)
         {
           display = dp->data;
           break;
@@ -219,16 +201,12 @@ thunar_gdk_screen_open (const gchar *display_name,
   /* try to locate the screen on the display */
   if (display != NULL)
     {
-      if (num >= 0 && num < gdk_display_get_n_screens (display))
-        screen = gdk_display_get_screen (display, num);
+      screen = gdk_display_get_default_screen (display);
 
       if (screen != NULL)
         g_object_ref (G_OBJECT (screen));
     }
 
-  /* release the name buffer */
-  g_free (name);
-
   /* check if we were successfull here */
   if (G_UNLIKELY (screen == NULL))
     g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_FAILED, "Failed to open display \"%s\"", display_name);

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Xfce4-commits mailing list