From 550559695bed7c5f90408c671ebc668e4c4bd488 Mon Sep 17 00:00:00 2001 From: Przemyslaw Czerpak Date: Fri, 18 Dec 2009 02:02:21 +0000 Subject: [PATCH] 2009-12-18 03:02 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/src/rtl/gtxwc/gtxwc.c ! fixed holders for properties format 32 to be long - it's important for 64 bit platforms. ! removed unsupported in current code "COMPOUND_TEXT" target ! readded support for "TEXT" target --- harbour/ChangeLog | 7 +++++++ harbour/src/rtl/gtxwc/gtxwc.c | 18 ++++++++++-------- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 41475fda6c..f5bbc1de9b 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,13 @@ past entries belonging to author(s): Viktor Szakats. */ +2009-12-18 03:02 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) + * harbour/src/rtl/gtxwc/gtxwc.c + ! fixed holders for properties format 32 to be long - it's important + for 64 bit platforms. + ! removed unsupported in current code "COMPOUND_TEXT" target + ! readded support for "TEXT" target + 2009-12-17 16:04 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com) * contrib/hbide/hbide.prg ! Removed dummy macros to honor original ones. diff --git a/harbour/src/rtl/gtxwc/gtxwc.c b/harbour/src/rtl/gtxwc/gtxwc.c index f444bfda54..adec3a85d1 100644 --- a/harbour/src/rtl/gtxwc/gtxwc.c +++ b/harbour/src/rtl/gtxwc/gtxwc.c @@ -2144,7 +2144,7 @@ static void hb_gt_xwc_WndProc( PXWND_DEF wnd, XEvent *evt ) #endif for( nItem = 0; nItem < text.nitems; ++nItem ) { - aValue = ( ( unsigned int * ) text.value )[ nItem ]; + aValue = ( Atom ) ( ( long * ) text.value )[ nItem ]; if( aValue == s_atomUTF8String ) aNextRequest = s_atomUTF8String; else if( aValue == s_atomString && aNextRequest != s_atomUTF8String ) @@ -2186,21 +2186,23 @@ static void hb_gt_xwc_WndProc( PXWND_DEF wnd, XEvent *evt ) if ( req->target == s_atomTimestamp ) { + long timeStamp = wnd->ClipboardTime; XChangeProperty( wnd->dpy, req->requestor, req->property, - s_atomInteger, /* 8 * sizeof( Time ) */ 32, PropModeReplace, - ( unsigned char * ) &wnd->ClipboardTime, 1 ); + s_atomInteger, 32, PropModeReplace, + ( unsigned char * ) &timeStamp, 1 ); } else if ( req->target == s_atomTargets ) { - Atom aProp[] = { s_atomTimestamp, s_atomTargets, + long aProp[] = { s_atomTimestamp, s_atomTargets, s_atomString, s_atomUTF8String, - s_atomCompoundText, s_atomText }; + s_atomText }; XChangeProperty( wnd->dpy, req->requestor, req->property, - s_atomAtom, /* 8 * sizeof( Atom ) */ 32, PropModeReplace, - ( unsigned char * ) aProp, sizeof( aProp ) / sizeof( Atom ) ); + s_atomAtom, 32, PropModeReplace, + ( unsigned char * ) aProp, sizeof( aProp ) / sizeof( long ) ); } - else if( req->target == s_atomString ) + else if( req->target == s_atomString || req->target == s_atomText ) { + /* TODO: for s_atomString convert data to ISO-8859-1 */ if( wnd->inCDP && wnd->hostCDP && wnd->inCDP != wnd->hostCDP ) { ULONG ulLen = wnd->ClipboardSize;