It sounds like what you are doing for the minimap is another camera/viewport that is placed in the top-left corner of the screen. What should be done instead is a visualization of a portion of the area you are currently in.
For example, in a tile based game you can use the location of the player and choose a size for the minimap. What you do is then draw the minimap based on a box centered around the player and the tile data.
X = wall; E = enemy; @ = character; -| = camera bounds
X EX X X X X
X |X----| X X X X
X |X @--| X -> X X @ X
X |-----| X X X
In the example above, the character is centered in a 5x3 bounding box used to generate the minimap. You can scan the tiles in the box and draw the minimap based on what is located there. With this method, the minimap is treated as a GUI object rather than another 'screen' for the game input.