Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

@capacitor/screen-orientation: iOS: orientation() and screenOrientationChange event report orientation change although orientation is locked

Open
#1,446 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
45/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Quiet
Tech stack
ios, swift, typescript
Domain
mobile

Research direction

Reproduce the issue on iOS using @capacitor/[email protected], starting with the ScreenOrientation.lock(), orientation(), and screenOrientationChange entry points described here. Compare reported values after locking to portrait-primary and rotating the device; done means the listener and orientation() reflect the locked screen orientation, without changing the documented Android behavior.

Written by the indexing model from the issue text.

Description

platform: ios plugin: screen-orientation type: bug

Bug Report

Plugin(s)

@capacitor/[email protected]

Capacitor Version
💊   Capacitor Doctor  💊 

Latest Dependencies:

  @capacitor/cli: 4.7.0
  @capacitor/core: 4.7.0
  @capacitor/android: 4.7.0
  @capacitor/ios: 4.7.0

Installed Dependencies:

  @capacitor/core: 4.7.0
  @capacitor/cli: 4.7.0
  @capacitor/ios: 4.7.0
  @capacitor/android: 4.7.0

[success] iOS looking great! 👌
Platform(s)
  • iOS
Current Behavior

After locking the orientation

await ScreenOrientation.lock({orientation: "portrait-primary"})

the screenOrientationChange listener still reports changed orientations when the device is rotated as if the orientation was not locked. Calling

const {type} = await ScreenOrientation.orientation()

also returns the orientation as if the screen orientation was not locked.

The document orientation itself is locked correctly though, no matter how the device is rotated.

Expected Behavior

The screenOrientationChange listener should only report changes when the screen orientation is actually changed, not when the device is rotated while the screen orientation is locked. Likewise ScreenOrientation.orientation() should return the correct screen orientation when it is locked, no matter how the device is rotated.

This does not seem to be an issue on Android. There the screenOrientationChange listener gets only called after ScreenOrientation.lock() if it actually changed the screen orientation. ScreenOrientation.orientation() also returns the correct screen orientation after ScreenOrientation.lock() was called.

Code Reproduction
Other Technical Details
Additional Context
Dominant language
Java
Stars
682
Forks
689
Avg merge
5d 11h
Merged PRs (30d)
3

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from ionic-team/capacitor-plugins

All issues in ionic-team/capacitor-plugins

Similar issues

More Java issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.