diff options
author | Eric Koegel <eric.koegel@gmail.com> | 2013-04-12 14:50:36 +0300 |
---|---|---|
committer | Eric Koegel <eric.koegel@gmail.com> | 2013-04-12 15:11:39 +0300 |
commit | 066b3f13732fe54d2cf54cc031664a7b023235e0 (patch) | |
tree | 33e450b886d1cc794ac0760aa3afcf5ad6922ee0 | |
parent | b651fd1ebc1b4a93bb46c8dc265849a73155fe20 (diff) | |
download | xfdesktop-066b3f13732fe54d2cf54cc031664a7b023235e0.tar.gz |
Support xfdesktop-settings as a pinned window
-rw-r--r-- | settings/main.c | 18 |
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); |