Recent

Author Topic: TMaskEdit and TCanvas.Brush  (Read 33953 times)

Bart

  • Hero Member
  • *****
  • Posts: 5561
    • Bart en Mariska's Webstek
Re: TMaskEdit and TCanvas.Brush
« Reply #15 on: May 20, 2011, 12:37:22 pm »
OK, this gets interesting.

The key is seen and processed in KeyPress.

Now again I would like to see the debug output from both KeyPress and InsertChar.

Start with the MaskEdit as described above (empty text, EditMask = 'ccccccc;1;_')

Set focus to the control.
Type '1' (without the quotes)

Report all debug output.

It should look something like:

Code: [Select]
TCustomMaskdit.KeyPress: Key = 1
TCustomMaskEdit.InsertChar: Ch = 1 CanInsertChar = True
TCustomMaskedit.InsertChar: calling SetInheritedText(1_______)

And the control should now something like read '1________'

Please report back.

B.t.w. if running as normal user fails (also report what fails), also run as root (since last time it seemde to work then).

B.t.w. can you isolate the problem in a minimal test case (1 form 1 TMaskEdit nothing else) and see if the problem remains?
You can attach the source (*.lpi;*.lfm;*.pp) here.

Bart
« Last Edit: May 20, 2011, 12:40:47 pm by Bart »

gitspielen

  • New Member
  • *
  • Posts: 19
Re: TMaskEdit and TCanvas.Brush
« Reply #16 on: May 20, 2011, 03:40:16 pm »
B.t.w. can you isolate the problem in a minimal test case (1 form 1 TMaskEdit nothing else) and see if the problem remains?
You can attach the source (*.lpi;*.lfm;*.pp) here.

I've already done it on the last test (~/test/project1 and ~/maskedit/project1. I needed to separate them because of permission but just the same things). They are the exact results of a new application project with a single MaskEdit component on it. Only EditMask property was changed for the test. You may be allowed to believe me! LOL

I'll report your requests ASAP but not now because I gotta go out.

gitspielen

  • New Member
  • *
  • Posts: 19
Re: TMaskEdit and TCanvas.Brush
« Reply #17 on: May 21, 2011, 02:56:53 am »
This is the output:

Code: [Select]
user@ubuntu:/media/home/src/lazarus$  ~/maskedit/project1
TCustomMaskdit.KeyPress: Key = 1
TCustomMaskEdit.InsertChar: Ch = 1 CanInsertChar = True
TCustomMaskedit.InsertChar: calling SeInheritedText(1_______)
user@ubuntu:/media/home/src/lazarus$ sudo ~/maskedit/project1
TCustomMaskdit.KeyPress: Key = 1
TCustomMaskEdit.InsertChar: Ch = 1 CanInsertChar = True
TCustomMaskedit.InsertChar: calling SeInheritedText(1_______)
TCustomMaskdit.KeyPress: Key = 2
TCustomMaskEdit.InsertChar: Ch = 2 CanInsertChar = True
TCustomMaskedit.InsertChar: calling SeInheritedText(12______)
TCustomMaskdit.KeyPress: Key = 3
TCustomMaskEdit.InsertChar: Ch = 3 CanInsertChar = True
TCustomMaskedit.InsertChar: calling SeInheritedText(123_____)
TCustomMaskdit.KeyPress: Key = 4
TCustomMaskEdit.InsertChar: Ch = 4 CanInsertChar = True
TCustomMaskedit.InsertChar: calling SeInheritedText(1234____)
TCustomMaskdit.KeyPress: Key = 5
TCustomMaskEdit.InsertChar: Ch = 5 CanInsertChar = True
TCustomMaskedit.InsertChar: calling SeInheritedText(12345___)

Failed as a normal user.

Hm.

Bart

  • Hero Member
  • *****
  • Posts: 5561
    • Bart en Mariska's Webstek
Re: TMaskEdit and TCanvas.Brush
« Reply #18 on: May 22, 2011, 10:50:24 am »
Now I'm getting confused.

As the debugoutput suggests, it sets the text in the control as expected.

Code: [Select]
TCustomMaskedit.InsertChar: calling SetInheritedText(12345___)

What then do you mean by: "Failed as a normal user"?
Does the text "12345___" appear in the MaskEdit?

If not: when you clear the MaskEdit (in code do MaskEdit1.EditMask := ''; MaskEdit.EditMask := 'cccccccc;1;_'; This forces a new mask to be created, and it forces a redrawing of the text) does the control look like
"________" (without the quotes)?

If it does, the it proves that SetInheritedText() works OK.

One other test you can do for me:

Change the code for TCustomMaskEdit.TextChanged as follows:

Code: [Select]
procedure TCustomMaskEdit.TextChanged;
{ Purpose: to avoid messing up the control by
  - cut/paste/clear via OS context menu
    (we try to catch these messages and handle them,
    but this is not garantueed to work)
  - dragging selected text in the control with the mouse
  If one of these happens, then the internal logic of cursorpositioning,
  inserting characters is messed up.
  So, we simply restore the text from our backup: FCurrenText
}
var S: String;
begin
  S := inherited Text;
  Debugln('TCustomMaskEdit.TextChanged: IsMasked = ',DbgS(IsMasked),' FChangeAllowed = ',DbgS(FChangeAllowed),' Current Text = ',S);
  if (not IsMasked) or FChangeAllowed then
  begin
    Inherited TextChanged;
  end
  else
  begin//Undo changes: restore with value of FCurrentText
    //we do not call inherited TextChanged here, because the following SetInheritedText
    //will trigger TextChanged with FChangeAllowed = True and inherited TextChanged is called then
    Debugln('TCustomMaskEdit.TextChanged: Disallowing the change');
    SetInheritedText(FCurrentText);
    //Reset cursor to last known position
    SetCursorPos;
  end;
end;

In ObjectInspector set EditMask to 'cccccccc;1;_'
Also set Text to '' (empty)

Rebuild LCL clean, rebuild app, run from console (as normal user).

Set focus to Maskedit, then type '12345' and show me the debugoutput (all of it).

If it "fails" please also make a screenshot of the running application (after you typed '12345') and attach it here.

And just for the heck of it:
After this: can you set EditMask to '' (empty) and run and type any text in the control: does it show any text then?

And finally: do you have a valid color set for the font (and a valid font) in the control?
Otherwise you may end up seeing nothing at all  %)

Bart

Bart

  • Hero Member
  • *****
  • Posts: 5561
    • Bart en Mariska's Webstek
Re: TMaskEdit and TCanvas.Brush
« Reply #19 on: May 22, 2011, 03:27:30 pm »
I just updated my Lazarus to r30856 and rebuild my testsuite for TMaskEdit.
It runs just fine on my old machine.

Then I tested the binary on Ubuntu 11.02 (GTK2 version = 2.24.2) (on a modern laptop) as normal user and as root.
In both cases it worked fine.

I attached my testsuite.

Bart

gitspielen

  • New Member
  • *
  • Posts: 19
Re: TMaskEdit and TCanvas.Brush
« Reply #20 on: May 22, 2011, 06:09:25 pm »
What then do you mean by: "Failed as a normal user"?

I meant that when I launched the application as a normal user, the problem appeared as it used to be. You may see the result in the following lines on my terminal, "$ ~/maskedit/project1". I kept typing other numbers "2345" but they didn't show up.

But I did it again under root permission, it worked perfectly. See after "$ sudo ~/maskedit/project1". You were confused because you missed my sudo command.

gitspielen

  • New Member
  • *
  • Posts: 19
Re: TMaskEdit and TCanvas.Brush
« Reply #21 on: May 22, 2011, 06:42:58 pm »
I applied the lastest revision, and I tested it again with a new debug information reporter, typing "12345":

Code: [Select]
user@ubuntu:~/maskedit$ ./project1
TCustomMaskEdit.TextChanged: IsMasked = True FChangeAllowed = True Current Text = ________
TCustomMaskEdit.TextChanged: IsMasked = True FChangeAllowed = False Current Text = ________
TCustomMaskEdit.TextChanged: Disallowing the change
TCustomMaskdit.KeyPress: Key = 1
TCustomMaskEdit.InsertChar: Ch = 1 CanInsertChar = True
TCustomMaskedit.InsertChar: calling SeInheritedText(1_______)
TCustomMaskEdit.TextChanged: IsMasked = True FChangeAllowed = True Current Text = 1_______
TCustomMaskEdit.TextChanged: IsMasked = True FChangeAllowed = False Current Text = 1______
TCustomMaskEdit.TextChanged: Disallowing the change
TCustomMaskEdit.TextChanged: IsMasked = True FChangeAllowed = True Current Text = 1_______
TCustomMaskEdit.TextChanged: IsMasked = True FChangeAllowed = False Current Text = 1_______
TCustomMaskEdit.TextChanged: Disallowing the change
TCustomMaskEdit.TextChanged: IsMasked = True FChangeAllowed = False Current Text = 1_______
TCustomMaskEdit.TextChanged: Disallowing the change
TCustomMaskEdit.TextChanged: IsMasked = True FChangeAllowed = False Current Text = 1_______
TCustomMaskEdit.TextChanged: Disallowing the change
TCustomMaskEdit.TextChanged: IsMasked = True FChangeAllowed = False Current Text = 1_______
TCustomMaskEdit.TextChanged: Disallowing the change
TCustomMaskEdit.TextChanged: IsMasked = True FChangeAllowed = False Current Text = 1_______
TCustomMaskEdit.TextChanged: Disallowing the change
user@ubuntu:~/maskedit$

See the difference under root permission:

Code: [Select]
user@ubuntu:~/maskedit$ sudo ./project1
[sudo] password for user:
TCustomMaskEdit.TextChanged: IsMasked = True FChangeAllowed = True Current Text = ________
TCustomMaskEdit.TextChanged: IsMasked = True FChangeAllowed = False Current Text = ________
TCustomMaskEdit.TextChanged: Disallowing the change
TCustomMaskdit.KeyPress: Key = 1
TCustomMaskEdit.InsertChar: Ch = 1 CanInsertChar = True
TCustomMaskedit.InsertChar: calling SeInheritedText(1_______)
TCustomMaskEdit.TextChanged: IsMasked = True FChangeAllowed = True Current Text = 1_______
TCustomMaskdit.KeyPress: Key = 2
TCustomMaskEdit.InsertChar: Ch = 2 CanInsertChar = True
TCustomMaskedit.InsertChar: calling SeInheritedText(12______)
TCustomMaskEdit.TextChanged: IsMasked = True FChangeAllowed = True Current Text = 12______
TCustomMaskdit.KeyPress: Key = 3
TCustomMaskEdit.InsertChar: Ch = 3 CanInsertChar = True
TCustomMaskedit.InsertChar: calling SeInheritedText(123_____)
TCustomMaskEdit.TextChanged: IsMasked = True FChangeAllowed = True Current Text = 123_____
TCustomMaskdit.KeyPress: Key = 4
TCustomMaskEdit.InsertChar: Ch = 4 CanInsertChar = True
TCustomMaskedit.InsertChar: calling SeInheritedText(1234____)
TCustomMaskEdit.TextChanged: IsMasked = True FChangeAllowed = True Current Text = 1234____
TCustomMaskdit.KeyPress: Key = 5
TCustomMaskEdit.InsertChar: Ch = 5 CanInsertChar = True
TCustomMaskedit.InsertChar: calling SeInheritedText(12345___)
TCustomMaskEdit.TextChanged: IsMasked = True FChangeAllowed = True Current Text = 12345___
user@ubuntu:~/maskedit$

OMG. What in the world happened to my machine?

gitspielen

  • New Member
  • *
  • Posts: 19
Re: TMaskEdit and TCanvas.Brush
« Reply #22 on: May 22, 2011, 07:37:18 pm »
The attachments are the screenshots of each phases as I pushed 'Print screen key -> 1 & Print screen key -> 2 & print screen' as a normal user.

However,
When I cleared EditMask, I could type any sentence so it seemed to work fine.

Arrgh
« Last Edit: May 22, 2011, 07:43:51 pm by gitspielen »

Bart

  • Hero Member
  • *****
  • Posts: 5561
    • Bart en Mariska's Webstek
Re: TMaskEdit
« Reply #23 on: May 22, 2011, 11:50:31 pm »
I applied the lastest revision, and I tested it again with a new debug information reporter, typing "12345":

Code: [Select]
user@ubuntu:~/maskedit$ ./project1
TCustomMaskEdit.TextChanged: IsMasked = True FChangeAllowed = True Current Text = ________
TCustomMaskEdit.TextChanged: IsMasked = True FChangeAllowed = False Current Text = ________
TCustomMaskEdit.TextChanged: Disallowing the change
TCustomMaskdit.KeyPress: Key = 1
TCustomMaskEdit.InsertChar: Ch = 1 CanInsertChar = True
TCustomMaskedit.InsertChar: calling SeInheritedText(1_______)
TCustomMaskEdit.TextChanged: IsMasked = True FChangeAllowed = True Current Text = 1_______
TCustomMaskEdit.TextChanged: IsMasked = True FChangeAllowed = False Current Text = 1______
TCustomMaskEdit.TextChanged: Disallowing the change
TCustomMaskEdit.TextChanged: IsMasked = True FChangeAllowed = True Current Text = 1_______
TCustomMaskEdit.TextChanged: IsMasked = True FChangeAllowed = False Current Text = 1_______
TCustomMaskEdit.TextChanged: Disallowing the change
TCustomMaskEdit.TextChanged: IsMasked = True FChangeAllowed = False Current Text = 1_______
TCustomMaskEdit.TextChanged: Disallowing the change
TCustomMaskEdit.TextChanged: IsMasked = True FChangeAllowed = False Current Text = 1_______
TCustomMaskEdit.TextChanged: Disallowing the change
TCustomMaskEdit.TextChanged: IsMasked = True FChangeAllowed = False Current Text = 1_______
TCustomMaskEdit.TextChanged: Disallowing the change
TCustomMaskEdit.TextChanged: IsMasked = True FChangeAllowed = False Current Text = 1_______
TCustomMaskEdit.TextChanged: Disallowing the change
user@ubuntu:~/maskedit$

This sucks.
In this piece of info, I can only see one KeyPress (namely '1').
There seems to be an (endless?) number of TextChanged, when there should be only one.

In theory:
- you press '1'
- KeyPress calls InsertChar
- InsertChar determines the Key can be inserted
- InsertChar then calculates the new text
- Mind you: up until now, the text in the control has not changed!
- InsertChar calls SetInheritedText with the appropriate new text content
- SetInheritedText sets FChangeAllowed to True and sets the text in the control
- Only now the text in the control gets changed
- The widgetset (GTK2 in this case) detects this and fires a signal
- The signal is caught by the app (LM_TEXTCHANGED I believe) and TextChanged will be executed
- In TextChanged FChangeAllowed = True
- Inherited TextChanged is called (the one from TCustomEdit)
- This calls Change, but does not alter the text (in our case)
- This calls the OnChange handler (if one is assigned)
- TextChanged is done now
- Return to SetInheritedText, which sets FChangeAllowed back to False

So there should be only one call to TextChanged after each keypress, but in your case there are multiple.
So something else must be somehow changing the contents of the control?

The whole purpose of the FChangeAllowed business is that, for example, in GTK2 you can select text in the control and then drag it to another position.
This will trigger a TextChanged, and FChangeAllowed will be False (and so it must be) in this case.

What I also do not understand is the following: in the beginning the control looks like '__________' , this is achieved via the same mechanism (see TCustomMaskEdit.Clear) and it seems to work OK on your machine.

Can you do me a favour and use my testsuite (see attachment in my previous message). Don't change any properties in OI, just build an run.

On startup the MaskEdit (topmost edit) is not masked (so it acts as a TEdit).
Now press the "Apply Mask" button.
This will set the EditMask to whatever is in the second Edit control (just leave the default 'cccccc' as it is)
Since setting a new EditMask also clears the MaskEdit control it's text should now read '______'

Does it do that?

Now press the "Set Text" button.
It will try to set MaskEdit.Text to whatever is in the third Edit control (just leave the default 'ABCDEF' as it is)
The text in the MaskEdit should now be 'ABCDEF'

Does it do that?

At this point, if there is any text in the MaskEdit, select one (or more) character(s) and press Delete.
The selected chars should be replaced with '_'

Does is do that?

And one final question:
In your own program can you create an OnChange handler for the MaskEdit.
In it just do
Code: [Select]
  Debugln('OnChange');

(Debugln is in LCLProc unit, so you need to include that in your uses clause)

Then run these 2 scenario's

1
- EditMask = '' (empty mask)
- run
- type '1' in the control (just once)
- close the program


2
- EditMask = 'cccccc'
- run
- type '1' in the control (just once)
- close the program

How many OnChanges do you see in each of the 2 scenario's?

Bart

gitspielen

  • New Member
  • *
  • Posts: 19
Re: TMaskEdit and TCanvas.Brush
« Reply #24 on: May 23, 2011, 01:45:32 am »
Quote
Can you do me a favour and use my testsuite (see attachment in my previous message). Don't change any properties in OI, just build an run.

On startup the MaskEdit (topmost edit) is not masked (so it acts as a TEdit).
Now press the "Apply Mask" button.
This will set the EditMask to whatever is in the second Edit control (just leave the default 'cccccc' as it is)
Since setting a new EditMask also clears the MaskEdit control it's text should now read '______'

Does it do that?
Yes.

Quote
Now press the "Set Text" button.
It will try to set MaskEdit.Text to whatever is in the third Edit control (just leave the default 'ABCDEF' as it is)
The text in the MaskEdit should now be 'ABCDEF'

Does it do that?
Without any problem.

Quote
At this point, if there is any text in the MaskEdit, select one (or more) character(s) and press Delete.
The selected chars should be replaced with '_'

Does is do that?
Perfectly it did, though it reacted only once :(


Quote
Then run these 2 scenario's

1
- EditMask = '' (empty mask)
- run
- type '1' in the control (just once)
- close the program

Code: [Select]
user@ubuntu:~/maskedit$ ./project1
TCustomMaskEdit.TextChanged: IsMasked = False FChangeAllowed = False Current Text =
TCustomMaskdit.KeyPress: Key = 1
TCustomMaskEdit.TextChanged: IsMasked = False FChangeAllowed = False Current Text = 1
OnChange



Quote
2
- EditMask = 'cccccc'
- run
- type '1' in the control (just once)
- close the program
Code: [Select]
user@ubuntu:~/maskedit$ ./project1
TCustomMaskEdit.TextChanged: IsMasked = True FChangeAllowed = True Current Text = _____
OnChange
TCustomMaskEdit.TextChanged: IsMasked = True FChangeAllowed = False Current Text = _____
TCustomMaskEdit.TextChanged: Disallowing the change
TCustomMaskdit.KeyPress: Key = 1
TCustomMaskEdit.InsertChar: Ch = 1 CanInsertChar = True
TCustomMaskedit.InsertChar: calling SeInheritedText(1____)
TCustomMaskEdit.TextChanged: IsMasked = True FChangeAllowed = True Current Text = 1____
OnChange
user@ubuntu:~/maskedit$

It seems perfect with a single character  %)
« Last Edit: May 23, 2011, 01:49:36 am by gitspielen »

Bart

  • Hero Member
  • *****
  • Posts: 5561
    • Bart en Mariska's Webstek
Re: TMaskEdit and TCanvas.Brush
« Reply #25 on: May 23, 2011, 12:10:56 pm »
I'm running out of ideas right now.

I cannot reproduce the problem, so I cannot dig deeper.

Maybe Zeljan has some ideas?

Bart

gitspielen

  • New Member
  • *
  • Posts: 19
Re: TMaskEdit and TCanvas.Brush
« Reply #26 on: May 23, 2011, 07:32:04 pm »
You did a great job anyway. All my thumbs up for you! d^^b

Is there any one in the development team who runs Lazarus under non-roman alphabetical environment, especially one of the Far East languages such as Chinese, Japanese or Korean?

Though it seems to be few possibilities but an input method may unexpectedly interrupt keyboard messages during IsMasked state, and it is unable to pass the events correctly due to permission problem.

So there can be a chance he/she may reproduce the bug, I reckon.



I´m also having some problems in the MaskEdit component, running in the Ubuntu 11.04. I wonder if it has something to do with the GTK2 version (2.4.24 if I´m not mistaken) that comes with the OS.

Anyone ?

Look at the guy! The man also undergoes the same issue with me. So I wonder what his or her language environment is.


Best regards.
« Last Edit: May 23, 2011, 07:40:05 pm by gitspielen »

Bart

  • Hero Member
  • *****
  • Posts: 5561
    • Bart en Mariska's Webstek
Re: TMaskEdit and TCanvas.Brush
« Reply #27 on: May 23, 2011, 11:16:41 pm »
First of all TMaskEdit rejects all input that is not in the lower ASCII range, and since the LCL is native UTF-8, it will reject all multibyte characters.

I have another question about the last experiment you did for me.
After you press '1' there are numerous calls to TextChanged.
Do these end spontaneously, or do they go on forever?

Also I came up with yet another experiment.

Change TMaskEdit.TextChanged to this:

Code: [Select]
procedure TCustomMaskEdit.TextChanged;
{ Purpose: to avoid messing up the control by
  - cut/paste/clear via OS context menu
    (we try to catch these messages and handle them,
    but this is not garantueed to work)
  - dragging selected text in the control with the mouse
  If one of these happens, then the internal logic of cursorpositioning,
  inserting characters is messed up.
  So, we simply restore the text from our backup: FCurrenText
}
var S: String;
begin
  S := inherited Text;
  Debugln('TCustomMaskEdit.TextChanged: IsMasked = ',DbgS(IsMasked),' FChangeAllowed = ',DbgS(FChangeAllowed),' Current Text = ',S);
  if (not IsMasked) or FChangeAllowed then
  begin
    Inherited TextChanged;
  end
  else if (FCurrentText <> S) then //<-- changed this line for you
  begin//Undo changes: restore with value of FCurrentText
    //we do not call inherited TextChanged here, because the following SetInheritedText
    //will trigger TextChanged with FChangeAllowed = True and inherited TextChanged is called then
    Debugln('TCustomMaskEdit.TextChanged: Disallowing the change');
    Debugln('  -> FCurrentText = ',FCurrentText,' S = ',S);
    SetInheritedText(FCurrentText);
    //Reset cursor to last known position
    SetCursorPos;
  end;
end;

From the previous experiment I gathered that in TextChanged somehow FChangeAllowed was False (it should not be) and it then calls SetInheritedText(FCurrentText), triggering the next TextChanged.
In all these cases it seems that the Text in the control = FCurrentText.
So maybe this tweak will prevent this?

Bart

gitspielen

  • New Member
  • *
  • Posts: 19
Re: TMaskEdit and TCanvas.Brush
« Reply #28 on: May 24, 2011, 12:19:24 am »
First of all TMaskEdit rejects all input that is not in the lower ASCII range, and since the LCL is native UTF-8, it will reject all multibyte characters.
I know the way it works, and probably window managers(Unity, in my case) simply won't execute input methods(iBus, for me) for ASCIIs, or if any, the methods won't treat typical ASCII-range letters so they'll just pass the code to applications.

But if the latter is what really happen -- i.e. Unity executes iBus despite of the key code and iBus determines whether the input within ASCII range, after then passes it to our MaskEdit -- my guess will come into some "possibility".

Quote
I have another question about the last experiment you did for me.
After you press '1' there are numerous calls to TextChanged.
Do these end spontaneously, or do they go on forever?
No. I'd say you misunderstood the status. I said that I typed "12345", not simply "1". So numerous TextChanged events are called. If you want to know what happened as I just put "1", carefully look at the terminal window on the screenshot file, s2.gif.

I'll be back with new experiment.
« Last Edit: May 24, 2011, 12:33:12 am by gitspielen »

gitspielen

  • New Member
  • *
  • Posts: 19
Re: TMaskEdit and TCanvas.Brush
« Reply #29 on: May 24, 2011, 01:36:57 am »
Code: [Select]
user@ubuntu:/media/home/src/lazarus$ ~/maskedit/project1

/// I pushed "1"

TCustomMaskEdit.TextChanged: IsMasked = True FChangeAllowed = True Current Text = _____
OnChange
TCustomMaskEdit.TextChanged: IsMasked = True FChangeAllowed = False Current Text = _____
TCustomMaskdit.KeyPress: Key = 1
TCustomMaskEdit.InsertChar: Ch = 1 CanInsertChar = True
TCustomMaskedit.InsertChar: calling SeInheritedText(1____)
TCustomMaskEdit.TextChanged: IsMasked = True FChangeAllowed = True Current Text = 1____
OnChange

/// pushed "2" afterward

TCustomMaskEdit.TextChanged: IsMasked = True FChangeAllowed = False Current Text = 1____
TCustomMaskEdit.TextChanged: IsMasked = True FChangeAllowed = False Current Text = 1____

Oops.

I insist we should move down to the widgetset implementation layer to find out where the problem is. Two possibilities: 1. The system doesn't give KeyPress event calling signal to our application as a normal user.  2. The system does, but widgetset implementation can't interpret it correctly because of somewhat unknown issues.
« Last Edit: May 24, 2011, 01:48:10 am by gitspielen »

 

TinyPortal © 2005-2018