Bläddra i källkod

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

Dalton Nell 9 år sedan
förälder
incheckning
77988fb2f1
1 ändrade filer med 12 tillägg och 5 borttagningar
  1. 12
    5
      x.cpp

+ 12
- 5
x.cpp Visa fil

7
 }
7
 }
8
 
8
 
9
 int slop::XEngineErrorHandler( Display* dpy, XErrorEvent* event ) {
9
 int slop::XEngineErrorHandler( Display* dpy, XErrorEvent* event ) {
10
-    // Ignore XGrabKeyboard BadAccess errors
10
+    // Ignore XGrabKeyboard BadAccess errors, we can work without it.
11
     // 31 = XGrabKeyboard's request code
11
     // 31 = XGrabKeyboard's request code
12
     if ( event->request_code == 31 && event->error_code == BadAccess ) {
12
     if ( event->request_code == 31 && event->error_code == BadAccess ) {
13
         return 0;
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
     exit(1);
23
     exit(1);
18
 }
24
 }
19
 
25
 
303
     rect.height = m_height;
309
     rect.height = m_height;
304
 
310
 
305
     XClassHint classhints;
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
     XSetClassHint( xengine->m_display, m_window, &classhints );
315
     XSetClassHint( xengine->m_display, m_window, &classhints );
309
 
316
 
310
     XShapeCombineRectangles( xengine->m_display, m_window, ShapeBounding, 0, 0, &rect, 1, ShapeSubtract, 0);
317
     XShapeCombineRectangles( xengine->m_display, m_window, ShapeBounding, 0, 0, &rect, 1, ShapeSubtract, 0);