[Bug 2527] popup screen flashes information & then becomes blank

wine-bugs at winehq.org wine-bugs at winehq.org
Wed Nov 2 04:42:58 CDT 2011


http://bugs.winehq.org/show_bug.cgi?id=2527

--- Comment #29 from Jerome Leclanche <adys.wh at gmail.com> 2011-11-02 04:42:58 CDT ---
For some reason I can't attach files...

Anyhow, the source is provided, and this is the open_popup function:

static void open_popup(DWORD mouseXY, char *text) {
  int mouseX, mouseY, cxscreen, startX, startY, side; /*cyscreen*/
  PAINTSTRUCT ps;
  RECT purc = {0,0,0,0};
  HFONT oldfont;
  #define POPUP_BORDER 1

  close_popup();
// Open window with dummy position and size to get device context
  popup = CreateWindow("STATIC", "", WS_POPUP|WS_VISIBLE,10,10,250,50,
hwndMain, NULL, t_hinst, NULL);

  BeginPaint(popup,&ps);
  oldfont = SelectFont(ps.hdc,gfont);
  DrawText(ps.hdc, text, strlen(text), &purc, DT_CALCRECT); // Get extents for
this text
  purc.right  += POPUP_BORDER*2;
  purc.bottom += POPUP_BORDER*2;

  mouseX = LOWORD(mouseXY);
  mouseY = HIWORD(mouseXY);
  cxscreen = GetSystemMetrics(SM_CXSCREEN);
  if (side=(cxscreen > (mouseX + winX + purc.right)))
       startX = mouseX + winX;
  else startX = mouseX + winX - purc.right;
  if (0 < (mouseY + winY - purc.bottom))
       startY = mouseY + winY - purc.bottom;
  else startY = mouseY + winY;
// Now make window the right size and in the right place
  MoveWindow(popup,startX,startY,purc.right,purc.bottom,FALSE);
  FillRect( ps.hdc, &purc, GetStockObject(WHITE_BRUSH));
  FrameRect(ps.hdc, &purc, GetStockObject(BLACK_BRUSH));
  purc.left   += POPUP_BORDER;
  purc.top    += POPUP_BORDER;
  purc.right  -= POPUP_BORDER;
  purc.bottom -= POPUP_BORDER;
  DrawText(ps.hdc,text,strlen(text),&purc,DT_WORDBREAK|(side? DT_LEFT :
DT_RIGHT));
  SelectFont(ps.hdc,oldfont);
  EndPaint(popup,&ps);
}

I'll let someone transform that into a testcase. The full wxtide.c file is
provided in the .7z that comes with the download.

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list