// send any activate events at all
static int g_sendActivateEvent = -1;
-/* hack: we need something to pass to gtk_menu_popup, so we store the time of
- the last click here */
-static guint32 gs_timeLastClick = 0;
-
extern bool g_mainThreadLocked;
//-----------------------------------------------------------------------------
if ( !g_captureWindow )
win = FindWindowForMouseEvent(win, event.m_x, event.m_y);
- gs_timeLastClick = gdk_event->time;
-
/*
wxPrintf( wxT("2) OnButtonPress from ") );
if (win->GetClassInfo() && win->GetClassInfo()->GetClassName())
wxPopupMenuPositionCallback, // function to position it
NULL, // client data
0, // button used to activate it
- gs_timeLastClick // the time of activation
+#ifdef __WXGTK20__
+ gtk_get_current_event_time()
+#else
+ GDK_CURRENT_TIME
+#endif
);
while (is_waiting)
// send any activate events at all
static int g_sendActivateEvent = -1;
-/* hack: we need something to pass to gtk_menu_popup, so we store the time of
- the last click here */
-static guint32 gs_timeLastClick = 0;
-
extern bool g_mainThreadLocked;
//-----------------------------------------------------------------------------
if ( !g_captureWindow )
win = FindWindowForMouseEvent(win, event.m_x, event.m_y);
- gs_timeLastClick = gdk_event->time;
-
/*
wxPrintf( wxT("2) OnButtonPress from ") );
if (win->GetClassInfo() && win->GetClassInfo()->GetClassName())
wxPopupMenuPositionCallback, // function to position it
NULL, // client data
0, // button used to activate it
- gs_timeLastClick // the time of activation
+#ifdef __WXGTK20__
+ gtk_get_current_event_time()
+#else
+ GDK_CURRENT_TIME
+#endif
);
while (is_waiting)
*xFontName = newFontName;
}
- // try to load exactly the font requested first
- if( !font )
- {
- font = wxLoadQueryFont( pointSize, family, style, weight,
- underlined, facename,
- info.xregistry, info.xencoding,
- xFontName );
- }
-
if ( !font )
{
// search up and down by stepsize 10
int max_size = pointSize + 20 * (1 + (pointSize/180));
int min_size = pointSize - 20 * (1 + (pointSize/180));
- int i;
+ int i, round; // counters
- // Search for smaller size (approx.)
- for ( i = pointSize - 10; !font && i >= 10 && i >= min_size; i -= 10 )
+ // first round: search for equal, then for smaller and for larger size with the given weight and style
+ int testweight = weight;
+ int teststyle = style;
+
+ for ( round = 0; round < 3; round++ )
+ {
+ // second round: use normal weight
+ if ( round == 1 )
{
- font = wxLoadQueryFont(i, family, style, weight, underlined,
+ if ( testweight != wxNORMAL )
+ {
+ testweight = wxNORMAL;
+ }
+ else
+ {
+ ++round; // fall through to third round
+ }
+ }
+
+ // third round: ... and use normal style
+ if ( round == 2 )
+ {
+ if ( teststyle != wxNORMAL )
+ {
+ teststyle = wxNORMAL;
+ }
+ else
+ {
+ break;
+ }
+ }
+ // Search for equal or smaller size (approx.)
+ for ( i = pointSize; !font && i >= 10 && i >= min_size; i -= 10 )
+ {
+ font = wxLoadQueryFont(i, family, teststyle, testweight, underlined,
facename, info.xregistry, info.xencoding,
xFontName);
}
// Search for larger size (approx.)
for ( i = pointSize + 10; !font && i <= max_size; i += 10 )
{
- font = wxLoadQueryFont(i, family, style, weight, underlined,
+ font = wxLoadQueryFont(i, family, teststyle, testweight, underlined,
facename, info.xregistry, info.xencoding,
xFontName);
+ }
}
// Try default family