Browse Source

Merge pull request #41 from jsimmons/master

Handle exit message from window manager on Linux
Branimir Karadžić 12 years ago
parent
commit
f8eabc86c7
1 changed files with 12 additions and 0 deletions
  1. 12 0
      examples/common/entry/entry_linux.cpp

+ 12 - 0
examples/common/entry/entry_linux.cpp

@@ -160,6 +160,11 @@ namespace entry
 									, &windowAttrs
 									);
 
+			const char *wmDeleteWindowName = "WM_DELETE_WINDOW";
+			Atom wmDeleteWindow;
+			XInternAtoms(m_display, (char **)&wmDeleteWindowName, 1, False, &wmDeleteWindow);
+			XSetWMProtocols(m_display, m_window, &wmDeleteWindow, 1);
+
 			XMapWindow(m_display, m_window);
 			XStoreName(m_display, m_window, "BGFX");
 
@@ -187,6 +192,13 @@ namespace entry
 						case ConfigureNotify:
 							break;
 
+						case ClientMessage:
+							if((Atom)event.xclient.data.l[0] == wmDeleteWindow)
+							{
+								m_eventQueue.postExitEvent();
+							}
+							break;
+
 						case ButtonPress:
 						case ButtonRelease:
 							{