C-More popup placed off screen shows at the bottom

6 min read · Published November 13, 2026

A popup parked below the panel's working area is not hidden. The runtime moves any window that lies partly or wholly off screen to the closest position where the whole popup fits, so it opens flush with the bottom edge. Place each popup where it should open, in the editor, with all four edges inside the working area.

The popup shows up near the bottom because the runtime never opens a window off screen. C-More takes a popup's position from where the popup window object sits on the canvas in the project. When that position lies partly or wholly outside the panel's working area, the runtime moves the window to the closest position where the entire popup fits on screen. A window parked below the canvas opens with its bottom edge on the bottom edge of the screen, which is exactly the symptom you are seeing. There is no placement step at trigger time to change this. The fix is to place each popup at the position where it should open, in the editor, with all four edges inside the working area, then confirm it once on the panel.

What the runtime does with an off-screen popup

The documented C-More placement rule is simple: if any part of the popup lies outside the working area, the runtime shifts it by the smallest distance that puts the whole window on screen. The rule exists so the operator sees a complete window instead of a clipped one. It also means the runtime keeps no parked or hidden state. An off-screen position is just a position, and the runtime clamps it the moment the popup opens.

Two consequences follow. How far below the canvas a popup is parked makes no difference to where it opens, because the closest fitting position is the same either way. And the two axes clamp independently: a window parked past the bottom-right corner moves up and left to the nearest fully on-screen spot. If the panel runs portrait, the width and height of the working area swap, so confirm the panel's orientation setting before doing the arithmetic.

Symptoms and what each points to

Match what the panel does to the cause before editing anything.

  • Popup opens flush with the bottom edge of the screen. It was parked below the working area, and the runtime moved it up to the closest fitting spot.
  • Popup opens flush with the left, right or top edge. It was parked past that edge in the editor.
  • Popup opens exactly where it was placed. All four edges are inside the working area, so there is nothing to fix.
  • Popup opens partly cut off wherever it is placed. The window is larger than the working area in one direction, so no fully on-screen position exists. Shrink the window or split its contents.
  • A popup you did not edit opens instead. The trigger is wired to a different window. Confirm which popup the trigger opens before moving anything.

A popup that opens full screen instead of window-sized is a cousin problem with its own fix: see an HMI popup that opens full screen.

Example: where a parked popup lands

Say the panel's working area is 800 × 480 pixels, read from the panel type configured in the project, and a popup window measures 320 × 240 pixels. You park it below the canvas with its top-left corner at 200, 520.

  • Parked bottom edge: 520 + 240 = 760 pixels, which is 760 − 480 = 280 pixels past the bottom boundary.
  • Fully on-screen positions for this popup run from top-left x 0 to 800 − 320 = 480, and top-left y 0 to 480 − 240 = 240.
  • The parked corner at x = 200 is already inside the horizontal range, so x stays 200. The parked y of 520 sits 280 pixels past the valid maximum of 240, so the runtime moves the window up 280 pixels to y = 240.
  • The popup opens at 200, 240, and its bottom edge lands at 240 + 240 = 480 pixels: flush with the bottom of the working area. That is the window near the bottom of the screen.

Park the same window at 200, 900 instead and it opens in exactly the same place, because the closest valid vertical position is still 240. Now make the window 320 × 600 pixels. Six hundred pixels is taller than the 480 pixel working area, so no fully on-screen position exists and the closest position leaves part of the window clipped. A window that size needs smaller contents or a split into two popups.

Place the popup where it should open

Placement is set in the screen editor and nowhere else.

  1. Open the screen that owns the popup.
  2. Select the popup window object the trigger opens. In a stack of windows, use the editor's cross-reference selection for hidden objects instead of grabbing whatever happens to be on top.
  3. Drag the popup to the position where it should open at runtime. If it belongs beside the control that opens it, put it there.
  4. Check all four edges against the working area. The whole window must be inside. Touching an edge is fine; crossing one is what makes the runtime move the window.
  5. Save, transfer the project to the panel using your normal workflow, and trigger the popup once from its normal trigger.
  6. If it still opens somewhere else, compare the runtime spot with the canvas position and the window size before touching trigger logic.

A window larger than the working area cannot be placed without clamping, so resize or split it first.

Editing a screen with five or more popups

Popups get parked off screen to cure editing clutter: five or more windows stacked on one canvas bury the objects underneath. Parking clears the view, and it is also what produces the bottom-of-screen surprise, plus a chance to leave a window in the wrong spot when it is dragged back.

Work the canvas differently. Decide each popup's open position before you build it and place it there from the start. Edit one window at a time and return it to its position before opening the next. When a popup will cover existing objects on purpose, check in the editor which objects stay reachable in runtime, and never cover a control the operator needs while the window is open.

One more trap: a popup opened from inside another popup is its own design problem, and why an HMI popup inside a popup fails is worth reading before you build one.

Checks before the screen goes back into service

Editor placement is the first check; the panel is the acceptance check. Trigger every popup from its normal trigger and confirm three things: it opens where operators expect, its full boundary is visible, and nothing it covers is needed while it is open. Give the windows placed near an edge extra attention, because a design position crossing the boundary by one pixel is what starts the repositioning. If one popup lands correctly and another does not, compare the two windows' canvas positions and sizes in the editor; with this rule, the difference is placement, not wiring.

A triggered popup answers one event at a time. A line status that should be visible every shift belongs on an andon-style board, and the basics of where a small screen fits that job are in the andon board guide. If you also want a separate status screen on the wall, that is what our shop-floor displays are built for.

Recommendation: Place every popup at the position where it should open, with all four edges inside the panel's working area, and park nothing off screen. After any placement change, trigger each popup once on the panel and confirm position and visibility before the screen returns to service. If the canvas gets crowded, edit one window at a time and use the editor's selection tools to reach stacked objects.

Questions

Can the program choose the popup's position when it is triggered?

The documented rule has no trigger-time position input. The runtime position comes from where the popup window object sits on the canvas, and an off-screen position is clamped to the closest fully on-screen spot. If the same content is needed at two positions on one screen, build two popups, place each where it should open, and trigger each once on the panel to confirm.

What if the popup is bigger than the working area?

Then no fully on-screen position exists. On a working area 480 pixels tall, a popup 600 pixels tall can never fit whole, so part stays clipped wherever the window is placed. Reduce the window size or split the contents across two popups, and keep all four edges of each window inside the working area before testing on the panel.

May a popup touch the edge of the working area on purpose?

Yes. Repositioning starts when an edge crosses the boundary, and a window that touches an edge still fits whole on screen. A popup placed flush with the bottom of a 480 pixel tall working area opens exactly where it was put, as long as its height fits. Crossing the boundary by even one pixel is what makes the runtime move the window.

Planning information, not legal or engineering advice. Rules differ by place: check codes and permits with your local authority and your licensed trades.

Keep reading

Build your signAsk for a quote