[ShellApp] Add quit method
Closes the app, will be used for the panel app menu. Note this is just a very primitive implementation. https://bugzilla.gnome.org/show_bug.cgi?id=613804
This commit is contained in:
parent
12e45f275b
commit
78e3126f97
@ -7,6 +7,8 @@
|
|||||||
#include "shell-global.h"
|
#include "shell-global.h"
|
||||||
#include "shell-enum-types.h"
|
#include "shell-enum-types.h"
|
||||||
#include "display.h"
|
#include "display.h"
|
||||||
|
#include "st.h"
|
||||||
|
#include "shell-window-tracker.h"
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
@ -733,6 +735,37 @@ _shell_app_set_starting (ShellApp *app,
|
|||||||
shell_app_state_transition (app, SHELL_APP_STATE_RUNNING);
|
shell_app_state_transition (app, SHELL_APP_STATE_RUNNING);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* shell_app_request_quit:
|
||||||
|
* @app: A #ShellApp
|
||||||
|
*
|
||||||
|
* Initiate an asynchronous request to quit this application.
|
||||||
|
* The application may interact with the user, and the user
|
||||||
|
* might cancel the quit request from the application UI.
|
||||||
|
*
|
||||||
|
* This operation may not be supported for all applications.
|
||||||
|
*
|
||||||
|
* Returns: %TRUE if a quit request is supported for this application
|
||||||
|
*/
|
||||||
|
gboolean
|
||||||
|
shell_app_request_quit (ShellApp *app)
|
||||||
|
{
|
||||||
|
GSList *iter;
|
||||||
|
|
||||||
|
/* TODO - check for an XSMP connection; we could probably use that */
|
||||||
|
|
||||||
|
for (iter = app->windows; iter; iter = iter->next)
|
||||||
|
{
|
||||||
|
MetaWindow *win = iter->data;
|
||||||
|
|
||||||
|
if (!shell_window_tracker_is_window_interesting (win))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
meta_window_delete (win, shell_global_get_current_time (shell_global_get ()));
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
shell_app_init (ShellApp *self)
|
shell_app_init (ShellApp *self)
|
||||||
{
|
{
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
#define __SHELL_APP_H__
|
#define __SHELL_APP_H__
|
||||||
|
|
||||||
#include <clutter/clutter.h>
|
#include <clutter/clutter.h>
|
||||||
|
#include <gio/gio.h>
|
||||||
|
|
||||||
#include "window.h"
|
#include "window.h"
|
||||||
|
|
||||||
@ -49,6 +50,8 @@ void shell_app_open_new_window (ShellApp *app);
|
|||||||
|
|
||||||
ShellAppState shell_app_get_state (ShellApp *app);
|
ShellAppState shell_app_get_state (ShellApp *app);
|
||||||
|
|
||||||
|
gboolean shell_app_request_quit (ShellApp *app);
|
||||||
|
|
||||||
guint shell_app_get_n_windows (ShellApp *app);
|
guint shell_app_get_n_windows (ShellApp *app);
|
||||||
|
|
||||||
GSList *shell_app_get_windows (ShellApp *app);
|
GSList *shell_app_get_windows (ShellApp *app);
|
||||||
|
Loading…
Reference in New Issue
Block a user