static void shell_window_tracker_on_window_removed (MetaWorkspace *workspace, MetaWindow *window, gpointer user_data) { disassociate_window (SHELL_WINDOW_TRACKER (user_data), window); }
static void on_transient_window_title_changed (MetaWindow *window, GParamSpec *spec, ShellWindowTracker *self) { ShellAppSystem *appsys; ShellApp *app; const char *id; /* Check if we now have a mapping using the window title */ id = get_app_id_from_title (window); if (id == NULL) return; appsys = shell_app_system_get_default (); app = shell_app_system_get_app (appsys, id); if (app == NULL) return; g_object_unref (app); /* We found an app, don't listen for further title changes */ g_signal_handlers_disconnect_by_func (window, G_CALLBACK (on_transient_window_title_changed), self); /* It's simplest to just treat this as a remove + add. */ disassociate_window (self, window); track_window (self, window); }
static void cinnamon_window_tracker_on_window_removed (MetaWorkspace *workspace, MetaWindow *window, gpointer user_data) { disassociate_window (CINNAMON_WINDOW_TRACKER (user_data), window); }
static void tracked_window_changed (CinnamonWindowTracker *self, MetaWindow *window) { /* It's simplest to just treat this as a remove + add. */ disassociate_window (self, window); track_window (self, window); /* also just recalculate the focused app, in case it was the focused window that changed */ update_focus_app (self); }
static void on_wm_class_changed (MetaWindow *window, GParamSpec *pspec, gpointer user_data) { ShellWindowTracker *self = SHELL_WINDOW_TRACKER (user_data); /* It's simplest to just treat this as a remove + add. */ disassociate_window (self, window); track_window (self, window); /* also just recaulcuate the focused app, in case it was the focused window that changed */ update_focus_app (self); }