[gnome-applets/wip/segeiger/type-changed: 1/2] window-picker: Listen to type-changed signal of WnckWindow
- From: Sebastian Geiger <segeiger src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-applets/wip/segeiger/type-changed: 1/2] window-picker: Listen to type-changed signal of WnckWindow
- Date: Wed, 2 Dec 2015 21:01:18 +0000 (UTC)
commit f8c30c5089d4925ea9ecbc5c68c8fb9c97b5694f
Author: Sebastian Geiger <sbastig gmx net>
Date: Wed Dec 2 11:23:23 2015 +0100
window-picker: Listen to type-changed signal of WnckWindow
windowpicker/src/task-list.c | 38 ++++++++++++++++++++++++++++++--------
1 files changed, 30 insertions(+), 8 deletions(-)
---
diff --git a/windowpicker/src/task-list.c b/windowpicker/src/task-list.c
index 00bec88..e8cbd5d 100644
--- a/windowpicker/src/task-list.c
+++ b/windowpicker/src/task-list.c
@@ -42,6 +42,34 @@ static void on_task_item_closed (
gtk_widget_destroy (GTK_WIDGET (item));
}
+static void create_task_item (TaskList *taskList,
+ WnckWindow *window)
+{
+ GtkWidget *item = task_item_new (taskList->priv->windowPickerApplet,
+ window);
+
+ if (item) {
+ //we add items dynamically to the end of the list
+ gtk_container_add (GTK_CONTAINER(taskList), item);
+ g_signal_connect (TASK_ITEM (item), "task-item-closed",
+ G_CALLBACK (on_task_item_closed), taskList);
+ }
+}
+
+static void type_changed (WnckWindow *window,
+ gpointer user_data)
+{
+ TaskList *taskList = TASK_LIST (user_data);
+ WnckWindowType type = wnck_window_get_window_type (window);
+
+ if (!(type == WNCK_WINDOW_DESKTOP
+ || type == WNCK_WINDOW_DOCK
+ || type == WNCK_WINDOW_SPLASHSCREEN
+ || type == WNCK_WINDOW_MENU)) {
+ create_task_item (taskList, window);
+ }
+}
+
static void on_window_opened (WnckScreen *screen,
WnckWindow *window,
TaskList *taskList)
@@ -53,17 +81,11 @@ static void on_window_opened (WnckScreen *screen,
|| type == WNCK_WINDOW_SPLASHSCREEN
|| type == WNCK_WINDOW_MENU)
{
+ g_signal_connect (window, "type-changed", G_CALLBACK (type_changed), taskList);
return;
}
- GtkWidget *item = task_item_new (taskList->priv->windowPickerApplet, window);
-
- if (item) {
- //we add items dynamically to the end of the list
- gtk_container_add(GTK_CONTAINER(taskList), item);
- g_signal_connect (TASK_ITEM(item), "task-item-closed",
- G_CALLBACK(on_task_item_closed), taskList);
- }
+ create_task_item (taskList, window);
}
static void on_task_list_orient_changed(PanelApplet *applet,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]