[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