Project

General

Profile

Bug #2763

Bug #2677: fix drawing and functional differences between P2J GUI and 4GL GUI

3D drawing of window borders is regressed in 1811s revision 10994

Added by Greg Shah over 8 years ago. Updated over 7 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Start date:
Due date:
% Done:

100%

billable:
No
vendor_id:
GCD
case_num:

History

#1 Updated by Greg Shah over 8 years ago

After rebase to trunk 10948 (the new dialog box support), 1811s (revision 10994) shows a regression where the 3D border of windows is no longer being drawn properly.

#2 Updated by Greg Shah over 8 years ago

Interestingly, this affect only seems to occur while tinyInput() is running. But it causes both the dialog box and the owning window's border to be drawn without 3D effects.

Once you dismiss the dialog, the main window draws its 3D border again.

If you run a testcase that doesn't have a dialog, then the 3D border is drawn fine (e.g. hello.p).

#3 Updated by Hynek Cihlar over 8 years ago

Greg Shah wrote:

Interestingly, this affect only seems to occur while tinyInput() is running. But it causes both the dialog box and the owning window's border to be drawn without 3D effects.

Once you dismiss the dialog, the main window draws its 3D border again.

If you run a testcase that doesn't have a dialog, then the 3D border is drawn fine (e.g. hello.p).

I will look at this. Btw. 3D border should be drawn in DIALOG-BOX and ALERT-BOX.

#4 Updated by Hynek Cihlar over 8 years ago

Eugenie, WindowGuiImpl.draw() calls super.draw() twice. First before drawBorder() and second time after @drawBorder().This causes the border to be redrawn and the 3D visuals drawn over. Can you please confirm the two calls to super were not intentional?

#5 Updated by Constantin Asofiei over 8 years ago

Hynek Cihlar wrote:

Eugenie, WindowGuiImpl.draw() calls super.draw() twice. First before drawBorder() and second time after @drawBorder().This causes the border to be redrawn and the 3D visuals drawn over. Can you please confirm the two calls to super were not intentional?

I think this is a rebase merge issue: super.draw() needs to be called after drawBorder().

#6 Updated by Hynek Cihlar over 8 years ago

Constantin Asofiei wrote:

Hynek Cihlar wrote:

Eugenie, WindowGuiImpl.draw() calls super.draw() twice. First before drawBorder() and second time after @drawBorder().This causes the border to be redrawn and the 3D visuals drawn over. Can you please confirm the two calls to super were not intentional?

I think this is a rebase merge issue: super.draw() needs to be called after drawBorder().

It should be called before or else the 3D border would be drawn over.

#7 Updated by Eugenie Lyzenko over 8 years ago

Constantin Asofiei wrote:

Hynek Cihlar wrote:

Eugenie, WindowGuiImpl.draw() calls super.draw() twice. First before drawBorder() and second time after @drawBorder().This causes the border to be redrawn and the 3D visuals drawn over. Can you please confirm the two calls to super were not intentional?

I think this is a rebase merge issue: super.draw() needs to be called after drawBorder().

I have no idea why this code is so weird now. And I'm not sure this came from rebase, may be something happens between:

...
** 046 HC  20151013 Changes to extend GUI multi-window focus management and ACTIVE-WINDOW system
**                  handle processing to modal windows.
** 047 CA  20151015 Fixed window resize via attributes (they target the workspace, not the full 
**                  window).
...

I have working copy before 047 with proper version of this class so I'm telling for sure.

So I confirm to have no intention from my side to make this change for any purpose. This looks really strange because if border overlaps super.draw() why to ovelap the border again?

#8 Updated by Eugenie Lyzenko over 8 years ago

Hynek Cihlar wrote:

Constantin Asofiei wrote:
It should be called before or else the 3D border would be drawn over.

I think the sequence is important if the calls have intersections. If so the super.draw() is the first, the border - second.

#9 Updated by Hynek Cihlar over 8 years ago

1811s revision 11004 fixes the disappearing 3D border. It also adds 3D border to ALERT-BOX and DIALOG-BOX.

#10 Updated by Hynek Cihlar over 8 years ago

  • % Done changed from 0 to 100

#11 Updated by Greg Shah over 8 years ago

There is one regression caused by 11004. Try simpler_alert_box.p and after selecting one of the buttons, try to dismiss the main window that is waiting at a "Procedure complete. Press space bar to continue." prompt. It doesn't work. In fact, you have to kill the client forcibly to get rid of it.

This same feature works fine if you don't bring up an alert-box.

#12 Updated by Hynek Cihlar over 8 years ago

Greg Shah wrote:

There is one regression caused by 11004. Try simpler_alert_box.p and after selecting one of the buttons, try to dismiss the main window that is waiting at a "Procedure complete. Press space bar to continue." prompt. It doesn't work. In fact, you have to kill the client forcibly to get rid of it.

This same feature works fine if you don't bring up an alert-box.

This is due a regression which broke event processing in alert-box, solved in #2770.

#13 Updated by Hynek Cihlar over 8 years ago

Hynek Cihlar wrote:

Greg Shah wrote:

There is one regression caused by 11004. Try simpler_alert_box.p and after selecting one of the buttons, try to dismiss the main window that is waiting at a "Procedure complete. Press space bar to continue." prompt. It doesn't work. In fact, you have to kill the client forcibly to get rid of it.

This same feature works fine if you don't bring up an alert-box.

This is due a regression which broke event processing in alert-box, solved in #2770.

I meant being solved in #2770.

#14 Updated by Greg Shah over 8 years ago

  • Status changed from New to Closed

#15 Updated by Greg Shah over 7 years ago

  • Target version changed from Milestone 12 to GUI Support for a Complex ADM2 App

Also available in: Atom PDF