diff options
author | Alexander Golubev <fatzer2@gmail.com> | 2016-12-17 15:06:57 +0300 |
---|---|---|
committer | Slávek Banko <slavek.banko@axis.cz> | 2017-01-29 02:27:15 +0100 |
commit | 5842fb37df7a01decb2151a570f58fb2528b3ccd (patch) | |
tree | 663ba3bcb4e6b136a3a843110d17d9488872821a | |
parent | 6c1b8a75f293ed4f1a08ec2064a2f5fa60de395b (diff) | |
download | tdelibs-5842fb37df7a01decb2151a570f58fb2528b3ccd.tar.gz tdelibs-5842fb37df7a01decb2151a570f58fb2528b3ccd.zip |
tdecore: fix a crash of dcop non-GUI apps without X
Previously non-GUI apps crashed on TDEApplication::updateUserTimestamp
callback when receiving a DCOP message.
Signed-off-by: Alexander Golubev <fatzer2@gmail.com>
-rw-r--r-- | tdecore/tdeapplication.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/tdecore/tdeapplication.cpp b/tdecore/tdeapplication.cpp index aa0e1e058..d19b4d942 100644 --- a/tdecore/tdeapplication.cpp +++ b/tdecore/tdeapplication.cpp @@ -2268,16 +2268,20 @@ bool TDEApplication::x11EventFilter( XEvent *_event ) void TDEApplication::updateUserTimestamp( unsigned long time ) { #if defined Q_WS_X11 + Display *display = tqt_xdisplay(); + if (!display) { + return; + } if( time == 0 ) { // get current X timestamp - Window w = XCreateSimpleWindow( tqt_xdisplay(), tqt_xrootwin(), 0, 0, 1, 1, 0, 0, 0 ); + Window w = XCreateSimpleWindow( display, tqt_xrootwin(), 0, 0, 1, 1, 0, 0, 0 ); XSelectInput( tqt_xdisplay(), w, PropertyChangeMask ); unsigned char data[ 1 ]; - XChangeProperty( tqt_xdisplay(), w, XA_ATOM, XA_ATOM, 8, PropModeAppend, data, 1 ); + XChangeProperty( display, w, XA_ATOM, XA_ATOM, 8, PropModeAppend, data, 1 ); XEvent ev; - XWindowEvent( tqt_xdisplay(), w, PropertyChangeMask, &ev ); + XWindowEvent( display, w, PropertyChangeMask, &ev ); time = ev.xproperty.time; - XDestroyWindow( tqt_xdisplay(), w ); + XDestroyWindow( display, w ); } if( GET_QT_X_USER_TIME() == 0 || NET::timestampCompare( time, GET_QT_X_USER_TIME() ) > 0 ) // check time > tqt_x_user_time |