static gboolean icon_clicked (GtkWidget *icon, GdkEventButton *event, WTApplet *wtapplet) { if (event->button != 1) return FALSE; WnckWindow *controlledwindow; if (wtapplet->prefs->only_maximized) { controlledwindow = wtapplet->umaxedwindow; } else { controlledwindow = wtapplet->activewindow; } // single click: if (controlledwindow) { wnck_window_activate(controlledwindow, gtk_get_current_event_time()); } // double click: if (event->type == GDK_2BUTTON_PRESS) { wnck_window_close(controlledwindow, gtk_get_current_event_time()); } return TRUE; }
void close_button_event (WnckWindow *win, decor_event *gtkwd_event, decor_event_type gtkwd_type) { decor_t *d = g_object_get_data (G_OBJECT (win), "decor"); guint state = d->button_states[BUTTON_CLOSE]; if (action_menu_mapped && gtkwd_type == GButtonPress) { gtk_object_destroy (GTK_OBJECT (action_menu)); } common_button_event (win, gtkwd_event, gtkwd_type, BUTTON_CLOSE, 1, _("Close Window")); switch (gtkwd_type) { case GButtonRelease: if (gtkwd_event->button == 1) if (state == BUTTON_EVENT_ACTION_STATE) wnck_window_close (win, gtkwd_event->time); break; default: break; } }
gboolean on_title_released(GtkWidget *title, GdkEventButton *event, WindowckPlugin *wckp) { if (!wckp->win->controlwindow) return FALSE; if (event->button == 2) { /* middle-click */ wnck_window_close(wckp->win->controlwindow, GDK_CURRENT_TIME); return TRUE; } return FALSE; }
int c_close_window(lua_State *lua) { int top = lua_gettop(lua); if (top != 0) { luaL_error(lua, "close_window: %s", no_indata_expected_error); return 0; } WnckWindow *window = get_current_window(); if (window) { wnck_window_close(window, GDK_CURRENT_TIME); } return 0; }
void LauncherApplication::close() { if (m_application == NULL) { return; } QScopedPointer<BamfUintList> xids(m_application->xids()); int size = xids->size(); if (size < 1) { return; } WnckScreen* screen = wnck_screen_get_default(); wnck_screen_force_update(screen); for (int i = 0; i < size; ++i) { WnckWindow* window = wnck_window_get(xids->at(i)); wnck_window_close(window, CurrentTime); } }
/** * handles Mouse button press : process mouse button event * true to stop other handlers from being invoked for the event. * false to propagate the event further. * @param event * @return true to stop other handlers,false to propagate the event further. * here we acivate the window and also close the window. */ bool Preview::on_button_press_event(GdkEventButton *event) { if ((event->type == GDK_BUTTON_PRESS)) { // Check if the event is a left button click. if (event->button == 1) { if (m_currentIndex < 0) return true; DockItem *item = m_previewtems.at(m_currentIndex); // Handle close preview window int pos_x = (m_previewWidth - 5) + (m_previewWidth * m_currentIndex); if (event->x >= pos_x && event->x <= pos_x + DEF_PREVIEW_LEFT_MARGING && // FIXTHIS: use rectangle instead. event->y >= 19 && event->y <= 19 + DEF_PREVIEW_LEFT_MARGING) { wnck_window_close(item->m_window, gtk_get_current_event_time()); m_isActive = false; return true; } // Activate and/or minimize the window WindowControl::ActivateWindow(item->m_window); // reload the image and checks if its have movement. // In this case it will change from static to Dynamic. // This can happen when a browser play a video and gets minimized and // stops playing. When it gets unminimized should play again in the preview. if (!item->m_isDynamic) { item->m_imageLoadedRequired = true; } // The event has been handled. return true; } } return true; }
/** * The event handler for the close icon. This closes the window and terminates * the program. */ static gboolean on_close_clicked (GtkButton *button, GdkEventButton *event, TaskTitle *title) { g_return_val_if_fail (TASK_IS_TITLE (title), FALSE); TaskTitlePrivate *priv = title->priv; if (event->button != 1 || !priv->mouse_in_close_button) return FALSE; WnckWindow *window = wnck_screen_get_active_window (priv->screen); if (!WNCK_IS_WINDOW (window) || wnck_window_get_window_type (window) == WNCK_WINDOW_DESKTOP) { fprintf(stdout, "Error\n"); fflush(stdout); } else { if (priv->window == window) disconnect_window (title); wnck_window_close (window, event->time); } gtk_widget_queue_draw (GTK_WIDGET (title)); return TRUE; }
void wibuti_watcher_close(WibutiWatcher *self) { if (WNCK_IS_WINDOW(self->tracked)) { wnck_window_close(self->tracked, GDK_CURRENT_TIME); } }
static void item_activated_callback (GtkWidget *menu_item, gpointer data) { WnckActionMenu *menu; WnckWindow *window; WindowAction action = GPOINTER_TO_INT (data); WnckScreen *screen; gboolean viewport_mode; menu = get_action_menu (menu_item); if (menu == NULL) return; window = menu->priv->window; screen = wnck_window_get_screen (window); viewport_mode = wnck_screen_get_workspace_count (screen) == 1 && wnck_workspace_is_virtual (wnck_screen_get_workspace (screen, 0)); switch (action) { case CLOSE: /* In an activate callback, so gtk_get_current_event_time() suffices */ wnck_window_close (window, gtk_get_current_event_time ()); break; case MINIMIZE: if (wnck_window_is_minimized (window)) wnck_window_unminimize (window, gtk_get_current_event_time ()); else wnck_window_minimize (window); break; case MAXIMIZE: if (wnck_window_is_maximized (window)) wnck_window_unmaximize (window); else wnck_window_maximize (window); break; case ABOVE: if (wnck_window_is_above (window)) wnck_window_unmake_above (window); else wnck_window_make_above (window); break; case MOVE: wnck_window_keyboard_move (window); break; case RESIZE: wnck_window_keyboard_size (window); break; case PIN: if (!viewport_mode) wnck_window_pin (window); else wnck_window_stick (window); break; case UNPIN: if (!viewport_mode) wnck_window_unpin (window); else wnck_window_unstick (window); break; case LEFT: if (!viewport_mode) { WnckWorkspace *workspace; workspace = wnck_workspace_get_neighbor (wnck_window_get_workspace (window), WNCK_MOTION_LEFT); wnck_window_move_to_workspace (window, workspace); } else { int width, xw, yw, ww, hw; width = wnck_screen_get_width (screen); wnck_window_get_geometry (window, &xw, &yw, &ww, &hw); wnck_window_unstick (window); wnck_window_set_geometry (window, 0, WNCK_WINDOW_CHANGE_X | WNCK_WINDOW_CHANGE_Y, xw - width, yw, ww, hw); } break; case RIGHT: if (!viewport_mode) { WnckWorkspace *workspace; workspace = wnck_workspace_get_neighbor (wnck_window_get_workspace (window), WNCK_MOTION_RIGHT); wnck_window_move_to_workspace (window, workspace); } else { int width, xw, yw, ww, hw; width = wnck_screen_get_width (screen); wnck_window_get_geometry (window, &xw, &yw, &ww, &hw); wnck_window_unstick (window); wnck_window_set_geometry (window, 0, WNCK_WINDOW_CHANGE_X | WNCK_WINDOW_CHANGE_Y, xw + width, yw, ww, hw); } break; case UP: if (!viewport_mode) { WnckWorkspace *workspace; workspace = wnck_workspace_get_neighbor (wnck_window_get_workspace (window), WNCK_MOTION_UP); wnck_window_move_to_workspace (window, workspace); } else { int height, xw, yw, ww, hw; height = wnck_screen_get_height (screen); wnck_window_get_geometry (window, &xw, &yw, &ww, &hw); wnck_window_unstick (window); wnck_window_set_geometry (window, 0, WNCK_WINDOW_CHANGE_X | WNCK_WINDOW_CHANGE_Y, xw, yw - height, ww, hw); } break; case DOWN: if (!viewport_mode) { WnckWorkspace *workspace; workspace = wnck_workspace_get_neighbor (wnck_window_get_workspace (window), WNCK_MOTION_DOWN); wnck_window_move_to_workspace (window, workspace); } else { int height, xw, yw, ww, hw; height = wnck_screen_get_height (screen); wnck_window_get_geometry (window, &xw, &yw, &ww, &hw); wnck_window_unstick (window); wnck_window_set_geometry (window, 0, WNCK_WINDOW_CHANGE_X | WNCK_WINDOW_CHANGE_Y, xw, yw + height, ww, hw); } break; case MOVE_TO_WORKSPACE: if (!viewport_mode) { int workspace_index; WnckWorkspace *workspace; workspace_index = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (menu_item), "workspace")); workspace = wnck_screen_get_workspace (screen, workspace_index); wnck_window_move_to_workspace (window, workspace); } else { WnckWorkspace *workspace; int new_viewport_x, new_viewport_y; int width, height; int xw, yw, ww, hw; int viewport_x, viewport_y; new_viewport_x = GPOINTER_TO_INT ( g_object_get_data (G_OBJECT (menu_item), "viewport_x")); new_viewport_y = GPOINTER_TO_INT ( g_object_get_data (G_OBJECT (menu_item), "viewport_y")); workspace = wnck_screen_get_workspace (screen, 0); width = wnck_screen_get_width (screen); height = wnck_screen_get_height (screen); wnck_window_get_geometry (window, &xw, &yw, &ww, &hw); viewport_x = wnck_workspace_get_viewport_x (workspace); viewport_y = wnck_workspace_get_viewport_y (workspace); wnck_window_unstick (window); wnck_window_set_geometry (window, 0, WNCK_WINDOW_CHANGE_X | WNCK_WINDOW_CHANGE_Y, xw + new_viewport_x - viewport_x, yw + new_viewport_y - viewport_y, ww, hw); } break; default: g_assert_not_reached (); } }
void window_close(WnckWindow *window) { guint32 timestamp; timestamp = gtk_get_current_event_time (); wnck_window_close(window, timestamp); }