コード例 #1
0
ファイル: appicon.c プロジェクト: awmaker/awmaker
static void appicon_move_or_detach(WDock *originalDock, WAppIcon *aicon, int x, int y)
{
	virtual_screen *vscr = aicon->icon->vscr;
	int superfluous = wPreferences.superfluous;

	if (originalDock == NULL)
		return;

	/* Detaching a docked appicon */
	if (superfluous) {
		if (!aicon->running && !wPreferences.no_animations) {
			/*
			 * We need to deselect it, even if is deselected in
			 * wDockDetach(), because else DoKaboom() will fail.
			 */
			if (aicon->icon->selected)
				wIconSelect(aicon->icon);

			DoKaboom(vscr, aicon->icon->core->window, x, y);
		}
	}

	wDockDetach(originalDock, aicon);
	if (originalDock->auto_collapse && !originalDock->collapsed) {
		originalDock->collapsed = 1;
		wDockHideIcons(originalDock);
	}

	if (originalDock->auto_raise_lower)
		wDockLower(originalDock);
}
コード例 #2
0
ファイル: winmenu.c プロジェクト: d-torrance/wmaker
static void execMenuCommand(WMenu * menu, WMenuEntry * entry)
{
	WWindow *wwin = (WWindow *) entry->clientdata;
	WApplication *wapp;

	CloseWindowMenu(menu->frame->screen_ptr);

	switch (entry->order) {
	case MC_CLOSE:
		/* send delete message */
		wClientSendProtocol(wwin, w_global.atom.wm.delete_window,
								  w_global.timestamp.last_event);
		break;

	case MC_KILL:
		wretain(wwin);
		if (wPreferences.dont_confirm_kill
		    || wMessageDialog(menu->frame->screen_ptr, _("Kill Application"),
				      _
				      ("This will kill the application.\nAny unsaved changes will be lost.\nPlease confirm."),
				      _("Yes"), _("No"), NULL) == WAPRDefault) {
			if (!wwin->flags.destroyed)
				wClientKill(wwin);
		}
		wrelease(wwin);
		break;

	case MC_MINIATURIZE:
		if (wwin->flags.miniaturized) {
			wDeiconifyWindow(wwin);
		} else {
			if (wwin->protocols.MINIATURIZE_WINDOW) {
				wClientSendProtocol(wwin, w_global.atom.gnustep.wm_miniaturize_window,
										  w_global.timestamp.last_event);
			} else {
				wIconifyWindow(wwin);
			}
		}
		break;

	case MC_MAXIMIZE:
		if (wwin->flags.maximized)
			wUnmaximizeWindow(wwin);
		else
			wMaximizeWindow(wwin, MAX_VERTICAL | MAX_HORIZONTAL,
					wGetHeadForWindow(wwin));
		break;

	case MC_SHADE:
		if (wwin->flags.shaded)
			wUnshadeWindow(wwin);
		else
			wShadeWindow(wwin);
		break;

	case MC_SELECT:
		if (!wwin->flags.miniaturized)
			wSelectWindow(wwin, !wwin->flags.selected);
		else
			wIconSelect(wwin->icon);
		break;

	case MC_MOVERESIZE:
		wKeyboardMoveResizeWindow(wwin);
		break;

	case MC_PROPERTIES:
		wShowInspectorForWindow(wwin);
		break;

	case MC_RELAUNCH:
		(void) RelaunchWindow(wwin);
		break;

	case MC_HIDE:
		wapp = wApplicationOf(wwin->main_window);
		wHideApplication(wapp);
		break;
	}
}