Quellcode durchsuchen

Cleaned up some code, and flushed out the error handler.

Dalton Nell vor 9 Jahren
Ursprung
Commit
77988fb2f1
1 geänderte Dateien mit 12 neuen und 5 gelöschten Zeilen
  1. 12
    5
      x.cpp

+ 12
- 5
x.cpp Datei anzeigen

@@ -7,13 +7,19 @@ static Bool isDestroyNotify( Display* dpy, XEvent* ev, XPointer win ) {
7 7
 }
8 8
 
9 9
 int slop::XEngineErrorHandler( Display* dpy, XErrorEvent* event ) {
10
-    // Ignore XGrabKeyboard BadAccess errors
10
+    // Ignore XGrabKeyboard BadAccess errors, we can work without it.
11 11
     // 31 = XGrabKeyboard's request code
12 12
     if ( event->request_code == 31 && event->error_code == BadAccess ) {
13 13
         return 0;
14 14
     }
15
-    // Otherwise call the default error handler
16
-    //return slop::OldXErrorHandler( dpy, event );
15
+    // Everything else should be fatal as I don't like undefined behavior.
16
+    char buffer[1024];
17
+    XGetErrorText( dpy, event->error_code, buffer, 1024 );
18
+    fprintf( stderr,
19
+             "_X Error of failed request:  %s\n_  Major opcode of failed request: % 3d\n_  Serial number of failed request:% 5d\n_  Current serial number in output stream:?????\n",
20
+             buffer,
21
+             event->request_code,
22
+             event->serial );
17 23
     exit(1);
18 24
 }
19 25
 
@@ -303,8 +309,9 @@ slop::Rectangle::Rectangle( int x, int y, int width, int height, int border, int
303 309
     rect.height = m_height;
304 310
 
305 311
     XClassHint classhints;
306
-    classhints.res_name = "slop";
307
-    classhints.res_class = "slop";
312
+    char name[] = "slop";
313
+    classhints.res_name = name;
314
+    classhints.res_class = name;
308 315
     XSetClassHint( xengine->m_display, m_window, &classhints );
309 316
 
310 317
     XShapeCombineRectangles( xengine->m_display, m_window, ShapeBounding, 0, 0, &rect, 1, ShapeSubtract, 0);