don't pop up software keyboard when hardware keyboard exists

VERIFIED FIXED

Status

()

Core
Widget: Win32
VERIFIED FIXED
12 years ago
9 years ago

People

(Reporter: Jym Brittain, Assigned: dougt)

Tracking

({mobile})

unspecified
x86
Windows CE
mobile
Points:
---

Firefox Tracking Flags

(status1.9.2 beta1-fixed, fennec1.0-wm+)

Details

Attachments

(2 attachments, 3 obsolete attachments)

(Reporter)

Description

12 years ago
User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4
Build Identifier: minimo 0.016

Clicking on a text entry space, even the address bar, causes the software keyboard to pop up. On devices with keyboards, ie the Cingular 8125/HTC Wizard this action should be optional. Other applications for this device have an input selection icon in the bottom menu bar so the user can choose whether to use the software keyboard, the included hardware keyboard or touch screen character input.

The user CAN use the hardware keyboard but the software keyboard remains. This obscures valuable screen space.

Reproducible: Always

Steps to Reproduce:
1.Launch minimo on a device with hardware keyboard
2. Click on text entry space
3.

Actual Results:  
software keyboard pops up

Expected Results:  
software keyboard should pop up, but the application should have the input selection icon to, in effect, dismiss the software keyboard to give greater screen space and the use of the hardware keyboard
(Assignee)

Comment 1

12 years ago
in preferences, you can disable the software keyboard.  if you do this, does the problem go away for you?
Status: UNCONFIRMED → NEW
Ever confirmed: true
(Reporter)

Comment 2

12 years ago
I have yet to find a way to access the preferences for Minimo. Changing the input method in the Windows settings does not change the behavor.
(Reporter)

Comment 3

12 years ago
After disabling the software keyboard the problem does go away. Thank you explaining how to access the preferences.
(Assignee)

Comment 4

11 years ago
We should do a better job of figuring out if there is a keyboard available and if it is, not use the softkeys.  Last I checked, the API didn't behave as documented.  Time to take another look.
(Assignee)

Updated

11 years ago
Assignee: dougt → nobody
Component: Device Specific → Widget: Win32
OS: Windows XP → Windows CE
Product: Minimo → Core
QA Contact: chofmann → win32
Version: WinCE → unspecified
(Assignee)

Updated

11 years ago
Keywords: mobile
Summary: devices with keyboards → don't pop up software keyboard when hardware keyboard exists

Updated

10 years ago
tracking-fennec: --- → 1.0-wm+

Updated

10 years ago
Depends on: 474734
tacking..
Assignee: nobody → bugmail
Status: NEW → ASSIGNED
Assignee: bugmail → doug.turner
(Assignee)

Updated

9 years ago
Duplicate of this bug: 483262

Updated

9 years ago
Duplicate of this bug: 500797
Palm Treo Pro is another test case for this.  I'll try disabling keyboard in prefs.
Ah, can't get to prefs on the Treo Pro -- it uses the large theme, so the prefs button doesn't show up.

Comment 10

9 years ago
Created attachment 388221 [details] [diff] [review]
hide software keyboard on i780

This patch detects hardware keyboard and make the software keyboard hide when Fennec starts up on Samsung i780.

Comment 11

9 years ago
The problem is that the softkey menu bar is still shown. It has to be hided when the user doesn't input anything.
(In reply to comment #11)
> The problem is that the softkey menu bar is still shown. It has to be hided
> when the user doesn't input anything.

That's because this patch returns early if the hardware keyboard is present.  ToggleSoftKB() hides the sip button/toolbar further down, so it would be better to adjust show based on the presence of a hardware keyboard.

Also, one problem I see with this patch is for devices with slide out keyboards. Any thoughts on how to handle those?

Comment 13

9 years ago
Created attachment 388474 [details] [diff] [review]
hide the SIP button

I fixed this patch as Blassey advised, so it also hides the SIP button.

Regarding devices with slide out keyboard, we can use the SmiSliderGetState API on Samsung devices. For more information, please refer to http://tinyurl.com/lfksrq

Updated

9 years ago
Attachment #388474 - Attachment is patch: true
Attachment #388474 - Attachment mime type: application/octet-stream → text/plain
Attachment #388221 - Attachment is obsolete: true
Comment on attachment 388474 [details] [diff] [review]
hide the SIP button

>+  result = ::RegQueryValueEx(hKey, L"HasKeyboard", NULL, &entryType, 
>+                      (LPBYTE)&hwkbd, &paramSize);

This is just a matter of opinion, but I think using GetKeyboardStatus() would be cleaner.

Comment 15

9 years ago
Created attachment 388715 [details] [diff] [review]
use of the GetKeyboardStatus()

Ok, I changed the function with GetKeyboardStatus().
It would be a proper name for this role.
Thanks
Attachment #388474 - Attachment is obsolete: true
(Assignee)

Comment 16

9 years ago
Are we talking about this GetKeyboardStatus()

http://msdn.microsoft.com/en-us/library/ms929253.aspx

Comment 17

9 years ago
I misunderstood Blassey's comment.
Anyway, I tried to use the GetKeyboardStatus() for checking if the hardware keyboard is present. But, it always returns the same value on Samsung i780 and the emulator.

Other people reported the similar result as follows:
http://tinyurl.com/lv79mf

So I think this API seems not working well.
(Assignee)

Comment 18

9 years ago
so much for using MS APIs.  :-(

Comment 19

9 years ago
Created attachment 389374 [details] [diff] [review]
changed the function name again

I changed the name of GetKeyboardStatus() in the last patch to CheckKeyboardStatus().
If the GetKeyboardStatus() doesn't really work, we had better use my CheckKeyboardStatus().
Attachment #388715 - Attachment is obsolete: true
(Assignee)

Comment 20

9 years ago
Joone, are you asking for a review on the above patch?

Comment 21

9 years ago
Sure, if there are no further issues.
Attachment #389374 - Flags: review?(doug.turner)
(Assignee)

Comment 22

9 years ago
Comment on attachment 389374 [details] [diff] [review]
changed the function name again

does this actually work?  on the htc touch pro, i am pretty sure that CheckKeyboardStatus will always return true no matter if you are in landscape or portrait.  So, when in portrait mode, you will not get a software keyboard.

Comment 23

9 years ago
I'm sorry. I missed testing this function on the HTC touch pro, but there is related information for HTC dual touch.
http://forum.xda-developers.com/archive/index.php/t-353387.html

We may be able to check the state from HKLM\Software\OEM\KeyBoard\SlidingOut.

I will try to test it when I get a HTC touch pro.
(Assignee)

Comment 24

9 years ago
Comment on attachment 389374 [details] [diff] [review]
changed the function name again

space than curl brace:

+  if (sHardKBPresence == TRI_TRUE){



drop the :: in front of the WINAPIs.

do you want to set the sHardKBPresense state in the error condition under the RegQueryValueEx call (back) to unknown?

Also my comment #22
Attachment #389374 - Flags: review?(doug.turner) → review-

Comment 25

9 years ago
Created attachment 395322 [details] [diff] [review]
Support for slide out keyboard

This patch enables Fennec to detect the current state of the slide out keyboard of HTC touch pro.

We can check the current state of slide out keyboard from the registry "HKEY_LOCAL_MACHINE\System\GDI\Rotation\Slidekey"
Attachment #395322 - Flags: review?(doug.turner)
(Assignee)

Comment 26

9 years ago
Comment on attachment 395322 [details] [diff] [review]
Support for slide out keyboard

this is great.  good find on how to detect this!
Attachment #395322 - Flags: review?(doug.turner) → review+
(Assignee)

Comment 27

9 years ago
http://hg.mozilla.org/mozilla-central/rev/3072dcbbd285
Status: ASSIGNED → RESOLVED
Last Resolved: 9 years ago
Resolution: --- → FIXED
(Assignee)

Updated

9 years ago
Attachment #395322 - Flags: approval1.9.2?

Updated

9 years ago
Attachment #395322 - Flags: approval1.9.2? → approval1.9.2+
Duplicate of this bug: 511253
verified with 20090828 1.9.2 nightly winmo build
Status: RESOLVED → VERIFIED
status1.9.2: --- → beta1-fixed
Keywords: fixed1.9.2
I need to look at this again with my Treo Pro.  The last build I tried failed to detect the hardware keyboard there, but it this was fixed in the last week, I'll be happy.
wfm on my HTC Touch.  In fact, better in this respect than Opera Mobile ;)
Just tried last WM nightly on my Treo Pro running WM 6.1.  Software keyboard pops up when I tap in AwesomeBar even though the device has a hardware keyboard.
You need to log in before you can comment on or make changes to this bug.