summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Koegel <eric.koegel@gmail.com>2013-04-12 14:50:36 +0300
committerEric Koegel <eric.koegel@gmail.com>2013-04-12 15:11:39 +0300
commit066b3f13732fe54d2cf54cc031664a7b023235e0 (patch)
tree33e450b886d1cc794ac0760aa3afcf5ad6922ee0
parentb651fd1ebc1b4a93bb46c8dc265849a73155fe20 (diff)
downloadxfdesktop-066b3f13732fe54d2cf54cc031664a7b023235e0.tar.gz
Support xfdesktop-settings as a pinned window
-rw-r--r--settings/main.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/settings/main.c b/settings/main.c
index 2365c906..5fdd1840 100644
--- a/settings/main.c
+++ b/settings/main.c
@@ -535,6 +535,8 @@ xfdesktop_image_list_add_item(gpointer user_data)
g_object_unref(panel->cancel_enumeration);
panel->cancel_enumeration = NULL;
}
+
+ return FALSE;
}
if((info = g_file_enumerator_next_file(dir_data->file_enumerator, NULL, NULL))) {
@@ -631,6 +633,11 @@ xfdesktop_settings_update_iconview_frame_name(AppearancePanel *panel,
if(panel->monitor < 0 && panel->workspace < 0)
return;
+ if(wnck_workspace == NULL) {
+ WnckScreen *wnck_screen = wnck_window_get_screen(panel->wnck_window);
+ wnck_workspace = wnck_screen_get_active_workspace(wnck_screen);
+ }
+
workspace_name = g_strdup(wnck_workspace_get_name(wnck_workspace));
if(gdk_screen_get_n_monitors(gtk_widget_get_screen(panel->chk_apply_to_all)) > 1) {
@@ -750,10 +757,16 @@ xfdesktop_settings_get_active_workspace(AppearancePanel *panel,
WnckWorkspace *wnck_workspace;
gboolean single_workspace;
gint workspace_num, single_workspace_num;
+ WnckScreen *wnck_screen = wnck_window_get_screen(wnck_window);
wnck_workspace = wnck_window_get_workspace(wnck_window);
- workspace_num = wnck_workspace_get_number(wnck_workspace);
+ if(wnck_workspace != NULL) {
+ workspace_num = wnck_workspace_get_number(wnck_workspace);
+ } else {
+ workspace_num = wnck_workspace_get_number(wnck_screen_get_active_workspace(wnck_screen));
+ }
+
single_workspace = xfconf_channel_get_bool(panel->channel,
SINGLE_WORKSPACE_MODE,
@@ -763,7 +776,6 @@ xfdesktop_settings_get_active_workspace(AppearancePanel *panel,
* it was set to, if that workspace exists, otherwise return the current
* workspace and turn off the single workspace mode */
if(single_workspace) {
- WnckScreen *wnck_screen = wnck_window_get_screen(wnck_window);
single_workspace_num = xfconf_channel_get_int(panel->channel,
SINGLE_WORKSPACE_NUMBER,
0);
@@ -1335,6 +1347,8 @@ xfdesktop_settings_dialog_setup_tabs(GtkBuilder *main_gxml,
G_CALLBACK(cb_workspace_changed), panel);
g_signal_connect(wnck_screen, "workspace-destroyed",
G_CALLBACK(cb_workspace_changed), panel);
+ g_signal_connect(wnck_screen, "active-workspace-changed",
+ G_CALLBACK(cb_workspace_changed), panel);
g_signal_connect(G_OBJECT(screen), "monitors-changed",
G_CALLBACK(cb_monitor_changed), panel);