Opened 8 years ago

Last modified 2 years ago

#7010 assigned bug

Showing a BView does not trigger appropriate update session when the resulting dirty region is already part of an update.

Reported by: jscipione Owned by: stippi
Priority: normal Milestone: R1
Component: Servers/app_server Version: R1/Development
Keywords: Cc:
Blocked By: Blocking:
Has a Patch: no Platform: All

Description (last modified by stippi)

This ticket used to be about a "bug" in DeskCalc, and a work around has been commited. The real issue has never been fixed and is a problem in app_server that can also be reproduced with ShowImage when removing similar work arounds there.

Since hrev40864 the following steps no longer work. Reverting the patch should make the problem reproducable again, but it has nothing to do with DeskCalc:

  1. Launch Deskcalc
  2. Right click and hold on the text input box, select 'Show Keypad' which will hide the keypad (since it is on by default).
  3. Right click and hold again on the text input box and select 'Show Keypad' again. This will show the keypad.
  4. Observe that the keypad is not fully drawn.

If you resize the window the keypad is then drawn, but you shouldn't have to resize the window to make the keypad draw.

Attachments (1)

Screen shot 2011-03-07 at 8.22.36 PM.png (35.9 KB) - added by jscipione 8 years ago.
Screenshot showing the the bug still exists in 40863

Download all attachments as: .zip

Change History (11)

comment:1 Changed 8 years ago by jscipione

I tried adding Invalidate() the end of _ShowKeypad() in CalcView.cpp and that did not fix the bug so this is going to take a bit more work to nail down.

comment:2 Changed 8 years ago by leavengood

I just noticed and can confirm this myself. It may be a bug in the Interface Kit or app_server but I would keep digging in DeskCalc before looking in those places.

comment:3 Changed 8 years ago by stpere

Resolution: fixed
Status: newclosed

Fixed in hrev40863.

Even tho the view had a FULL_REDRAW_ON_RESIZE flag, the view itself wasn't following the window, so wasn't resized, so not redrawn on resize.

Changed 8 years ago by jscipione

Screenshot showing the the bug still exists in 40863

comment:4 Changed 8 years ago by jscipione

Tested this on 40863 and the bug still appears to exist. I looked at the commit and you just added an Invlidate() to the ShowKeypad() method. I wrote in a comment above (comment #1) that I already tried that and it didn't fix the bug. Am I missing something?

comment:5 Changed 8 years ago by stpere

Resolution: fixed
Status: closedreopened

hmm, that's weird. I swear that I saw it working. O_o.. I suppose I clicked in the view by accident. I'll look further.

comment:6 Changed 8 years ago by stpere

Resolution: fixed
Status: reopenedclosed

Fixed in hrev40864. I doubled-checked :)

comment:7 Changed 8 years ago by jscipione

Tested on 40864. Bug is squashed. Thanks stpere!

comment:8 Changed 8 years ago by stippi

Component: Applications/DeskCalcServers/app_server
Description: modified (diff)
Resolution: fixed
Status: closedreopened
Summary: When you select show keypad, Deskcalc doesn't draw the keypadShowing a BView does not trigger appropriate update session when the resulting dirty region is already part of an update.

comment:9 Changed 8 years ago by stippi

Status: reopenedassigned

comment:10 Changed 2 years ago by jscipione

Removed Invalidate() from CalcView::FrameResized() and restored B_FULL_UPDATE_ON_RESIZE to CalcView ctor on hrev51054 to see if Axel's changes had any effect. No change, DeskCalc still does not invalidate the keypad until the window is resized.

Note: See TracTickets for help on using tickets.