mirror of
https://github.com/brl/mutter.git
synced 2024-11-13 01:36:10 -05:00
wayland: Add support for the delete event
This commit is contained in:
parent
912a0abd26
commit
0c213c8fee
@ -373,6 +373,19 @@
|
|||||||
decorations should be updated accordingly.
|
decorations should be updated accordingly.
|
||||||
</description>
|
</description>
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
|
<event name="delete">
|
||||||
|
<description summary="surface wants to be closed">
|
||||||
|
The delete event is sent by the compositor when the user
|
||||||
|
wants the surface to be closed. This should be equivalent to
|
||||||
|
the user clicking the close button in client-side decorations,
|
||||||
|
if your application has any...
|
||||||
|
|
||||||
|
This is only a request that the user intends to close your
|
||||||
|
window. The client may choose to ignore this request, or show
|
||||||
|
a dialog to ask the user to save their data...
|
||||||
|
</description>
|
||||||
|
</event>
|
||||||
</interface>
|
</interface>
|
||||||
|
|
||||||
<interface name="xdg_popup" version="1">
|
<interface name="xdg_popup" version="1">
|
||||||
|
@ -37,6 +37,8 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#include "meta-wayland-surface.h"
|
||||||
|
|
||||||
static void meta_window_present_delete_dialog (MetaWindow *window,
|
static void meta_window_present_delete_dialog (MetaWindow *window,
|
||||||
guint32 timestamp);
|
guint32 timestamp);
|
||||||
|
|
||||||
@ -141,24 +143,31 @@ void
|
|||||||
meta_window_delete (MetaWindow *window,
|
meta_window_delete (MetaWindow *window,
|
||||||
guint32 timestamp)
|
guint32 timestamp)
|
||||||
{
|
{
|
||||||
meta_error_trap_push (window->display);
|
if (window->client_type == META_WINDOW_CLIENT_TYPE_X11)
|
||||||
if (window->delete_window)
|
|
||||||
{
|
{
|
||||||
meta_topic (META_DEBUG_WINDOW_OPS,
|
meta_error_trap_push (window->display);
|
||||||
"Deleting %s with delete_window request\n",
|
if (window->delete_window)
|
||||||
window->desc);
|
{
|
||||||
meta_window_send_icccm_message (window,
|
meta_topic (META_DEBUG_WINDOW_OPS,
|
||||||
window->display->atom_WM_DELETE_WINDOW,
|
"Deleting %s with delete_window request\n",
|
||||||
timestamp);
|
window->desc);
|
||||||
|
meta_window_send_icccm_message (window,
|
||||||
|
window->display->atom_WM_DELETE_WINDOW,
|
||||||
|
timestamp);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
meta_topic (META_DEBUG_WINDOW_OPS,
|
||||||
|
"Deleting %s with explicit kill\n",
|
||||||
|
window->desc);
|
||||||
|
XKillClient (window->display->xdisplay, window->xwindow);
|
||||||
|
}
|
||||||
|
meta_error_trap_pop (window->display);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
meta_topic (META_DEBUG_WINDOW_OPS,
|
meta_wayland_surface_delete (window->surface);
|
||||||
"Deleting %s with explicit kill\n",
|
|
||||||
window->desc);
|
|
||||||
XKillClient (window->display->xdisplay, window->xwindow);
|
|
||||||
}
|
}
|
||||||
meta_error_trap_pop (window->display);
|
|
||||||
|
|
||||||
meta_window_check_alive (window, timestamp);
|
meta_window_check_alive (window, timestamp);
|
||||||
|
|
||||||
|
@ -1464,3 +1464,10 @@ meta_wayland_surface_ping (MetaWaylandSurface *surface,
|
|||||||
else if (surface->xdg_popup.resource)
|
else if (surface->xdg_popup.resource)
|
||||||
xdg_popup_send_ping (surface->xdg_popup.resource, timestamp);
|
xdg_popup_send_ping (surface->xdg_popup.resource, timestamp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
meta_wayland_surface_delete (MetaWaylandSurface *surface)
|
||||||
|
{
|
||||||
|
if (surface->xdg_surface.resource)
|
||||||
|
xdg_surface_send_delete (surface->xdg_surface.resource);
|
||||||
|
}
|
||||||
|
@ -115,5 +115,6 @@ void meta_wayland_surface_focused_unset (MetaWaylandSurface *surf
|
|||||||
|
|
||||||
void meta_wayland_surface_ping (MetaWaylandSurface *surface,
|
void meta_wayland_surface_ping (MetaWaylandSurface *surface,
|
||||||
guint32 serial);
|
guint32 serial);
|
||||||
|
void meta_wayland_surface_delete (MetaWaylandSurface *surface);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user