Never mind. I finally found the items (FLTK's bug tracker is a little tricky to navigate.)
http://www.fltk.org/str.php?L2660+P0+S-2+C0+I0+E0+Q2660 http://www.fltk.org/str.php?L2636+P0+S-2+C0+I0+E0+Q2636 http://www.fltk.org/str.php?L2599+P0+S-2+C0+I0+E0+Q2599 http://www.fltk.org/str.php?L2641+P0+S-2+C0+I0+E0+Q2641 On 9/18/11 4:16 PM, DRC wrote: > Please post information regarding issues fixed by this patch. > > > On 9/16/11 6:51 AM, hea...@users.sourceforge.net wrote: >> Revision: 4675 >> http://tigervnc.svn.sourceforge.net/tigervnc/?rev=4675&view=rev >> Author: hean01 >> Date: 2011-09-16 11:51:32 +0000 (Fri, 16 Sep 2011) >> Log Message: >> ----------- >> Updated bundled fltk with latest set of patches for >> following fltk str: 2660, 2636, 2599, 2641... >> >> Modified Paths: >> -------------- >> trunk/common/fltk/FL/Fl_Widget.H >> trunk/common/fltk/FL/mac.H >> trunk/common/fltk/FL/win32.H >> trunk/common/fltk/src/Fl.cxx >> trunk/common/fltk/src/Fl_cocoa.mm >> trunk/common/fltk/src/Fl_win32.cxx >> trunk/common/fltk/src/fl_draw_pixmap.cxx >> trunk/common/fltk/src/screen_xywh.cxx >> >> Modified: trunk/common/fltk/FL/Fl_Widget.H >> =================================================================== >> --- trunk/common/fltk/FL/Fl_Widget.H 2011-09-14 20:18:23 UTC (rev 4674) >> +++ trunk/common/fltk/FL/Fl_Widget.H 2011-09-16 11:51:32 UTC (rev 4675) >> @@ -108,7 +108,6 @@ >> */ >> class FL_EXPORT Fl_Widget { >> friend class Fl_Group; >> - friend class Fl_X; >> >> Fl_Group* parent_; >> Fl_Callback* callback_; >> >> Modified: trunk/common/fltk/FL/mac.H >> =================================================================== >> --- trunk/common/fltk/FL/mac.H 2011-09-14 20:18:23 UTC (rev 4674) >> +++ trunk/common/fltk/FL/mac.H 2011-09-16 11:51:32 UTC (rev 4675) >> @@ -213,6 +213,9 @@ >> public: >> /** Localizable text for the "About xxx" application menu item */ >> static const char *about; >> + /** Copyright notice for the default about dialog. Will use the >> information >> + from the bundle if set to an empty string. */ >> + static const char *copyright; >> /** Localizable text for the "Print Front Window" application menu item. >> This menu item won't be displayed if Fl_Mac_App_Menu::print >> is set to an empty string. >> >> Modified: trunk/common/fltk/FL/win32.H >> =================================================================== >> --- trunk/common/fltk/FL/win32.H 2011-09-14 20:18:23 UTC (rev 4674) >> +++ trunk/common/fltk/FL/win32.H 2011-09-16 11:51:32 UTC (rev 4675) >> @@ -82,6 +82,7 @@ >> int wait_for_expose; >> HDC private_dc; // used for OpenGL >> HCURSOR cursor; >> + int custom_cursor; >> HDC saved_hdc; // saves the handle of the DC currently loaded >> // static variables, static functions and member functions >> static Fl_X* first; >> >> Modified: trunk/common/fltk/src/Fl.cxx >> =================================================================== >> --- trunk/common/fltk/src/Fl.cxx 2011-09-14 20:18:23 UTC (rev 4674) >> +++ trunk/common/fltk/src/Fl.cxx 2011-09-16 11:51:32 UTC (rev 4675) >> @@ -86,6 +86,7 @@ >> // >> #if defined(__APPLE__) || defined(FL_DOXYGEN) >> const char *Fl_Mac_App_Menu::about = "About "; >> +const char *Fl_Mac_App_Menu::copyright = NULL; >> const char *Fl_Mac_App_Menu::print = "Print Front Window"; >> const char *Fl_Mac_App_Menu::services = "Services"; >> const char *Fl_Mac_App_Menu::hide = "Hide "; >> >> Modified: trunk/common/fltk/src/Fl_cocoa.mm >> =================================================================== >> --- trunk/common/fltk/src/Fl_cocoa.mm 2011-09-14 20:18:23 UTC (rev >> 4674) >> +++ trunk/common/fltk/src/Fl_cocoa.mm 2011-09-16 11:51:32 UTC (rev >> 4675) >> @@ -1666,6 +1666,7 @@ >> - (void)rightMouseDragged:(NSEvent *)theEvent; >> - (void)otherMouseDragged:(NSEvent *)theEvent; >> - (void)scrollWheel:(NSEvent *)theEvent; >> ++ (NSString *)keyTranslate:(UInt16)keyCode >> withModifierFlags:(UInt32)modifierFlags; >> - (BOOL)handleKeyDown:(NSEvent *)theEvent; >> - (void)keyDown:(NSEvent *)theEvent; >> - (void)keyUp:(NSEvent *)theEvent; >> @@ -1754,6 +1755,130 @@ >> - (void)scrollWheel:(NSEvent *)theEvent { >> cocoaMouseWheelHandler(theEvent); >> } >> ++ (NSString *)keyTranslate:(UInt16)keyCode >> withModifierFlags:(UInt32)modifierFlags { >> + const UCKeyboardLayout *layout; >> + OSStatus err; >> + >> + layout = NULL; >> + >> +#if (MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5) >> + TISInputSourceRef keyboard; >> + CFDataRef uchr; >> + >> + keyboard = TISCopyCurrentKeyboardInputSource(); >> + uchr = (CFDataRef)TISGetInputSourceProperty(keyboard, >> + >> kTISPropertyUnicodeKeyLayoutData); >> + if (uchr == NULL) >> + return nil; >> + >> + layout = (const UCKeyboardLayout*)CFDataGetBytePtr(uchr); >> +#else >> + KeyboardLayoutRef old_layout; >> + int kind; >> + >> + err = KLGetCurrentKeyboardLayout(&old_layout); >> + if (err != noErr) >> + return nil; >> + >> + err = KLGetKeyboardLayoutProperty(old_layout, kKLKind, >> + (const void**)&kind); >> + if (err != noErr) >> + return nil; >> + >> + // Old, crufty layout format? >> + if (kind == kKLKCHRKind) { >> + void *kchr_layout; >> + >> + UInt32 chars, state; >> + char buf[3]; >> + >> + unichar result[16]; >> + ByteCount in_len, out_len; >> + >> + err = KLGetKeyboardLayoutProperty(old_layout, kKLKCHRData, >> + (const void**)&kchr_layout); >> + if (err != noErr) >> + return nil; >> + >> + state = 0; >> + >> + keyCode &= 0x7f; >> + modifierFlags &= 0xff00; >> + >> + chars = KeyTranslate(kchr_layout, keyCode | modifierFlags, &state); >> + >> + buf[0] = (chars >> 16) & 0xff; >> + buf[1] = chars & 0xff; >> + buf[2] = '\0'; >> + >> + if (buf[0] == '\0') { >> + buf[0] = buf[1]; >> + buf[1] = '\0'; >> + } >> + >> + // The data is now in some layout specific encoding. Need to convert >> + // this to unicode. >> + >> + ScriptCode script; >> + TextEncoding encoding; >> + TECObjectRef converter; >> + >> + script = (ScriptCode)GetScriptManagerVariable(smKeyScript); >> + >> + err = UpgradeScriptInfoToTextEncoding(script, kTextLanguageDontCare, >> + kTextRegionDontCare, NULL, >> + &encoding); >> + if (err != noErr) >> + return nil; >> + >> + err = TECCreateConverter(&converter, encoding, >> kTextEncodingUnicodeV4_0); >> + if (err != noErr) >> + return nil; >> + >> + in_len = strlen(buf); >> + out_len = sizeof(result); >> + >> + err = TECConvertText(converter, (ConstTextPtr)buf, in_len, &in_len, >> + (TextPtr)result, out_len, &out_len); >> + >> + TECDisposeConverter(converter); >> + >> + if (err != noErr) >> + return nil; >> + >> + return [NSString stringWithCharacters:result >> + length:(out_len / sizeof(unichar))]; >> + } >> + >> + if ((kind != kKLKCHRuchrKind) && (kind != kKLuchrKind)) >> + return nil; >> + >> + err = KLGetKeyboardLayoutProperty(old_layout, kKLuchrData, >> + (const void**)&layout); >> + if (err != noErr) >> + return nil; >> +#endif >> + >> + if (layout == NULL) >> + return nil; >> + >> + UInt32 dead_state; >> + UniCharCount max_len, actual_len; >> + UniChar string[255]; >> + >> + dead_state = 0; >> + max_len = sizeof(string)/sizeof(*string); >> + >> + modifierFlags = (modifierFlags >> 8) & 0xff; >> + >> + err = UCKeyTranslate(layout, keyCode, kUCKeyActionDown, modifierFlags, >> + LMGetKbdType(), 0, &dead_state, max_len, &actual_len, >> + string); >> + if (err != noErr) >> + return nil; >> + >> + return [NSString stringWithCharacters:string length:actual_len]; >> +} >> - (BOOL)handleKeyDown:(NSEvent *)theEvent { >> //NSLog(@"handleKeyDown"); >> fl_lock_function(); >> @@ -1780,19 +1905,47 @@ >> break; >> } >> } >> - // Don't send cmd-<key> to interpretKeyEvents because it beeps. >> - if (!no_text_key && !(Fl::e_state & FL_META) ) { >> + if (!no_text_key) { >> // The simple keyboard model will ignore insertText, so we need to grab >> // the symbol directly from the event. Note that we still use >> setMarkedText. >> - if (use_simple_keyboard) >> - [FLView prepareEtext:[theEvent charactersIgnoringModifiers]]; >> + if (use_simple_keyboard) { >> + NSString *simple_chars; >> + UInt32 modifiers; >> >> + // We want a "normal" symbol out of the event, which basically means >> + // we only respect the shift and alt/altgr modifiers. Cocoa can help >> + // us if we only wanted shift, but as we also want alt/altgr, we'll >> + // have to do some lookup ourselves. This matches our behaviour on >> + // other platforms. >> + >> + modifiers = 0; >> + if ([theEvent modifierFlags] & NSAlphaShiftKeyMask) >> + modifiers |= alphaLock; >> + if ([theEvent modifierFlags] & NSShiftKeyMask) >> + modifiers |= shiftKey; >> + if ([theEvent modifierFlags] & NSAlternateKeyMask) >> + modifiers |= optionKey; >> + >> + simple_chars = [FLView keyTranslate:[theEvent keyCode] >> + withModifierFlags:modifiers]; >> + if (simple_chars == nil) { >> + // Something went wrong. Fall back to what Cocoa gave us... >> + simple_chars = [theEvent charactersIgnoringModifiers]; >> + } >> + >> + [FLView prepareEtext:simple_chars]; >> + } >> + >> // Then we can let the OS have a stab at it and see if it thinks it >> // should result in some text >> - NSText *edit = [[theEvent window] fieldEditor:YES forObject:nil]; >> - in_key_event = true; >> - [edit interpretKeyEvents:[NSArray arrayWithObject:theEvent]]; >> - in_key_event = false; >> + >> + // Don't send cmd-<key> to interpretKeyEvents because it beeps. >> + if (!(Fl::e_state & FL_META)) { >> + NSText *edit = [[theEvent window] fieldEditor:YES forObject:nil]; >> + in_key_event = true; >> + [edit interpretKeyEvents:[NSArray arrayWithObject:theEvent]]; >> + in_key_event = false; >> + } >> } >> //NSLog(@"to text=%@ l=%d", [NSString stringWithUTF8String:Fl::e_text], >> Fl::e_length); >> int handled = Fl::handle(FL_KEYDOWN, window); >> @@ -3078,12 +3231,25 @@ >> @implementation FLaboutItemTarget >> - (void)showPanel >> { >> - NSDictionary *options; >> - options = [NSDictionary dictionaryWithObjectsAndKeys: >> - [NSString stringWithFormat:@" GUI with FLTK >> %d.%d", FL_MAJOR_VERSION, >> - FL_MINOR_VERSION ], @"Copyright", >> - nil]; >> - [NSApp orderFrontStandardAboutPanelWithOptions:options]; >> + if ((Fl_Mac_App_Menu::copyright == NULL) || >> + (strlen(Fl_Mac_App_Menu::copyright) > 0)) { >> + NSString *copyright; >> + >> + if (Fl_Mac_App_Menu::copyright == NULL) >> + copyright = [NSString stringWithFormat:@" GUI with FLTK %d.%d", >> + FL_MAJOR_VERSION, FL_MINOR_VERSION ]; >> + else >> + copyright = [NSString >> stringWithUTF8String:Fl_Mac_App_Menu::copyright]; >> + >> + NSDictionary *options; >> + options = [NSDictionary dictionaryWithObjectsAndKeys: >> + copyright, @"Copyright", >> + nil]; >> + >> + [NSApp orderFrontStandardAboutPanelWithOptions:options]; >> + } else { >> + [NSApp orderFrontStandardAboutPanelWithOptions:nil]; >> + } >> } >> //#include <FL/Fl_PostScript.H> >> - (void)printPanel >> >> Modified: trunk/common/fltk/src/Fl_win32.cxx >> =================================================================== >> --- trunk/common/fltk/src/Fl_win32.cxx 2011-09-14 20:18:23 UTC (rev >> 4674) >> +++ trunk/common/fltk/src/Fl_win32.cxx 2011-09-16 11:51:32 UTC (rev >> 4675) >> @@ -1179,7 +1179,7 @@ >> // Pressing Ctrl wreaks havoc with the symbol lookup, so turn that >> off. >> // But AltGr shows up as Ctrl+Alt in Windows, so keep Ctrl if Alt is >> // active. >> - if (!(keystate[VK_MENU] & (1<<31))) >> + if (!(keystate[VK_MENU] & 0x80)) >> keystate[VK_CONTROL] = keystate[VK_LCONTROL] = >> keystate[VK_RCONTROL] = 0; >> >> // We cannot inspect or modify Windows' internal state of the keyboard >> @@ -1776,6 +1776,7 @@ >> x->region = 0; >> x->private_dc = 0; >> x->cursor = LoadCursor(NULL, IDC_ARROW); >> + x->custom_cursor = 0; >> if (!fl_codepage) fl_get_codepage(); >> >> WCHAR *lab = NULL; >> @@ -2033,9 +2034,10 @@ >> >> int Fl_X::set_cursor(Fl_Cursor c) { >> LPSTR n; >> + HCURSOR new_cursor; >> >> if (c == FL_CURSOR_NONE) >> - cursor = NULL; >> + new_cursor = NULL; >> else { >> switch (c) { >> case FL_CURSOR_ARROW: n = IDC_ARROW; break; >> @@ -2065,11 +2067,17 @@ >> return 0; >> } >> >> - cursor = LoadCursor(NULL, n); >> - if (cursor == NULL) >> + new_cursor = LoadCursor(NULL, n); >> + if (new_cursor == NULL) >> return 0; >> } >> >> + if ((cursor != NULL) && custom_cursor) >> + DestroyIcon(cursor); >> + >> + cursor = new_cursor; >> + custom_cursor = 0; >> + >> SetCursor(cursor); >> >> return 1; >> @@ -2079,6 +2087,7 @@ >> BITMAPV5HEADER bi; >> HBITMAP bitmap, mask; >> DWORD *bits; >> + HCURSOR new_cursor; >> >> if ((hotx < 0) || (hotx >= image->w())) >> return 0; >> @@ -2089,7 +2098,7 @@ >> >> bi.bV5Size = sizeof(BITMAPV5HEADER); >> bi.bV5Width = image->w(); >> - bi.bV5Height = image->h(); >> + bi.bV5Height = -image->h(); // Negative for top-down >> bi.bV5Planes = 1; >> bi.bV5BitCount = 32; >> bi.bV5Compression = BI_BITFIELDS; >> @@ -2104,6 +2113,9 @@ >> bitmap = CreateDIBSection(hdc, (BITMAPINFO*)&bi, DIB_RGB_COLORS, >> (void**)&bits, NULL, 0); >> ReleaseDC(NULL, hdc); >> >> + if (bits == NULL) >> + return 0; >> + >> const uchar *i = (const uchar*)*image->data(); >> for (int y = 0;y < image->h();y++) { >> for (int x = 0;x < image->w();x++) { >> @@ -2129,6 +2141,10 @@ >> >> // A mask bitmap is still needed even though it isn't used >> mask = CreateBitmap(image->w(),image->h(),1,1,NULL); >> + if (mask == NULL) { >> + DeleteObject(bitmap); >> + return 0; >> + } >> >> ICONINFO ii; >> >> @@ -2138,11 +2154,20 @@ >> ii.hbmMask = mask; >> ii.hbmColor = bitmap; >> >> - cursor = CreateIconIndirect(&ii); >> + new_cursor = CreateIconIndirect(&ii); >> >> DeleteObject(bitmap); >> DeleteObject(mask); >> >> + if (new_cursor == NULL) >> + return 0; >> + >> + if ((cursor != NULL) && custom_cursor) >> + DestroyIcon(cursor); >> + >> + cursor = new_cursor; >> + custom_cursor = 1; >> + >> SetCursor(cursor); >> >> return 1; >> >> Modified: trunk/common/fltk/src/fl_draw_pixmap.cxx >> =================================================================== >> --- trunk/common/fltk/src/fl_draw_pixmap.cxx 2011-09-14 20:18:23 UTC (rev >> 4674) >> +++ trunk/common/fltk/src/fl_draw_pixmap.cxx 2011-09-16 11:51:32 UTC (rev >> 4675) >> @@ -128,7 +128,7 @@ >> if ((chars_per_pixel < 1) || (chars_per_pixel > 2)) >> return 0; >> >> - uchar (*colors)[4] = new uchar [1<<(chars_per_pixel*8)][4]; >> + uchar colors[1<<(chars_per_pixel*8)][4]; >> >> #ifdef WIN32 >> color_count = 0; >> @@ -229,7 +229,6 @@ >> } >> } >> >> - delete [] colors; >> return 1; >> } >> >> @@ -243,12 +242,10 @@ >> if (!fl_measure_pixmap(cdata, w, h)) >> return 0; >> >> - uchar *buffer = new uchar[w*h*4]; >> + uchar buffer[w*h*4]; >> >> - if (!fl_convert_pixmap(cdata, buffer, bg)) { >> - delete buffer; >> + if (!fl_convert_pixmap(cdata, buffer, bg)) >> return 0; >> - } >> >> // FIXME: Hack until fl_draw_image() supports alpha properly >> #ifdef __APPLE_QUARTZ__ >> @@ -295,7 +292,6 @@ >> } >> #endif >> >> - delete buffer; >> return 1; >> } >> >> >> Modified: trunk/common/fltk/src/screen_xywh.cxx >> =================================================================== >> --- trunk/common/fltk/src/screen_xywh.cxx 2011-09-14 20:18:23 UTC (rev >> 4674) >> +++ trunk/common/fltk/src/screen_xywh.cxx 2011-09-16 11:51:32 UTC (rev >> 4675) >> @@ -30,6 +30,7 @@ >> #include <FL/x.H> >> #include <config.h> >> >> +#define MAX_SCREENS 16 >> >> // Number of screens returned by multi monitor aware API; -1 before init >> static int num_screens = -1; >> @@ -96,7 +97,7 @@ >> >> if (fl_edm) { >> // We do have EnumDisplayMonitors, so lets find out how many >> monitors... >> - num_screens = GetSystemMetrics(SM_CMONITORS); >> + //num_screens = GetSystemMetrics(SM_CMONITORS); >> >> // if (num_screens > 1) { >> // If there is more than 1 monitor, enumerate them... >> @@ -142,47 +143,62 @@ >> } >> num_screens = count; >> } >> -#elif HAVE_XINERAMA >> +#else >> + >> +#if HAVE_XINERAMA >> # include <X11/extensions/Xinerama.h> >> +#endif >> +typedef struct { >> + short x_org; >> + short y_org; >> + short width; >> + short height; >> +} FLScreenInfo; >> +static FLScreenInfo screens[MAX_SCREENS]; >> +static float dpi[MAX_SCREENS][2]; >> >> -// Screen data... >> -static XineramaScreenInfo *screens; >> -static float dpi[16][2]; >> - >> static void screen_init() { >> if (!fl_display) fl_open_display(); >> >> + // FIXME: Rewrite using randr instead >> +#if HAVE_XINERAMA >> if (XineramaIsActive(fl_display)) { >> - screens = XineramaQueryScreens(fl_display, &num_screens); >> - int i; >> - // Xlib and Xinerama may disagree on the screen count. Sigh... >> - // Use the minimum of the reported counts. >> - // Use the previous screen's info for non-existent ones. >> - int sc = ScreenCount(fl_display); // Xlib screen count >> - for (i=0; i<num_screens; i++) { >> - int mm = (i < sc) ? DisplayWidthMM(fl_display, i) : 0; >> - dpi[i][0] = mm ? screens[i].width*25.4f/mm : (i > 0) ? dpi[i-1][0] : >> 0.0f; >> - mm = (i < sc) ? DisplayHeightMM(fl_display, i) : 0; >> - dpi[i][1] = mm ? screens[i].height*25.4f/mm : (i > 0) ? dpi[i-1][1] : >> 0.0f; >> + static XineramaScreenInfo *xsi = XineramaQueryScreens(fl_display, >> &num_screens); >> + if (num_screens > MAX_SCREENS) num_screens = MAX_SCREENS; >> + >> + /* There's no way to use different DPI for different Xinerama >> + screens. */ >> + for (int i=0; i<num_screens; i++) { >> + screens[i].x_org = xsi[i].x_org; >> + screens[i].y_org = xsi[i].y_org; >> + screens[i].width = xsi[i].width; >> + screens[i].height = xsi[i].height; >> + >> + int mm = DisplayWidthMM(fl_display, fl_screen); >> + dpi[i][0] = mm ? screens[i].width*25.4f/mm : 0.0f; >> + mm = DisplayHeightMM(fl_display, fl_screen); >> + dpi[i][1] = mm ? screens[i].height*25.4f/mm : 0.0f; >> } >> - } else { // ! XineramaIsActive() >> - num_screens = 1; >> - int mm = DisplayWidthMM(fl_display, fl_screen); >> - dpi[0][0] = mm ? Fl::w()*25.4f/mm : 0.0f; >> - mm = DisplayHeightMM(fl_display, fl_screen); >> - dpi[0][1] = mm ? Fl::h()*25.4f/mm : dpi[0][0]; >> + } else >> +#endif >> + { // ! XineramaIsActive() >> + num_screens = ScreenCount(fl_display); >> + if (num_screens > MAX_SCREENS) num_screens = MAX_SCREENS; >> + >> + for (int i=0; i<num_screens; i++) { >> + screens[i].x_org = 0; >> + screens[i].y_org = 0; >> + screens[i].width = DisplayWidth(fl_display, i); >> + screens[i].height = DisplayHeight(fl_display, i); >> + >> + int mm = DisplayWidthMM(fl_display, i); >> + dpi[i][0] = mm ? DisplayWidth(fl_display, i)*25.4f/mm : 0.0f; >> + mm = DisplayHeightMM(fl_display, i); >> + dpi[i][1] = mm ? DisplayHeight(fl_display, i)*25.4f/mm : 0.0f; >> + } >> } >> } >> -#else >> -static float dpi[2]; >> -static void screen_init() { >> - num_screens = 1; >> - if (!fl_display) fl_open_display(); >> - int mm = DisplayWidthMM(fl_display, fl_screen); >> - dpi[0] = mm ? Fl::w()*25.4f/mm : 0.0f; >> - mm = DisplayHeightMM(fl_display, fl_screen); >> - dpi[1] = mm ? Fl::h()*25.4f/mm : dpi[0]; >> -} >> + >> #endif // WIN32 >> >> >> @@ -258,20 +274,11 @@ >> H = Fl::h(); >> } >> #else >> -#if HAVE_XINERAMA >> - if (num_screens > 0 && screens) { >> + if (num_screens > 0) { >> X = screens[n].x_org; >> Y = screens[n].y_org; >> W = screens[n].width; >> H = screens[n].height; >> - } else >> -#endif // HAVE_XINERAMA >> - { >> - /* Fallback if something is broken (or no Xinerama)... */ >> - X = 0; >> - Y = 0; >> - W = DisplayWidth(fl_display, fl_screen); >> - H = DisplayHeight(fl_display, fl_screen); >> } >> #endif // WIN32 >> } >> @@ -333,16 +340,11 @@ >> h = dpi_h[n]; >> v = dpi_v[n]; >> } >> -#elif HAVE_XINERAMA >> +#else >> if (n >= 0 && n < num_screens) { >> h = dpi[n][0]; >> v = dpi[n][1]; >> } >> -#else >> - if (n >= 0 && n < num_screens) { >> - h = dpi[0]; >> - v = dpi[1]; >> - } >> #endif // WIN32 >> } >> >> >> This was sent by the SourceForge.net collaborative development platform, the >> world's largest Open Source development site. >> >> >> ------------------------------------------------------------------------------ >> BlackBerry® DevCon Americas, Oct. 18-20, San Francisco, CA >> http://p.sf.net/sfu/rim-devcon-copy2 >> _______________________________________________ >> Tigervnc-commits mailing list >> tigervnc-comm...@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/tigervnc-commits ------------------------------------------------------------------------------ All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity and more. Splunk takes this data and makes sense of it. Business sense. IT sense. Common sense. http://p.sf.net/sfu/splunk-d2dcopy1 _______________________________________________ Tigervnc-devel mailing list Tigervnc-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tigervnc-devel